import getParser from '../../src/parser/index'; import inspect from '../../src/stringifier/inspect'; import { seedBlock } from '../../src/util'; test('multiple lines', () => { const source = ` /** * Description may go\r\r * over few lines followed by @tags\r * @param {string} name name parameter * @param {any} value value of any type */`.slice(1); const parsed = getParser()(source); const expected = ` |line|start|delimiter|postDelimiter|tag |postTag|name |postName|type |postType|description |end|CR | |----|-----|---------|-------------|------|-------|-----|--------|--------|--------|--------------------------------|---|---| | 0|{2} |/** | | | | | | | | | | | | 1|{3} |* |{1} | | | | | | |Description may go | |{2}| | 2|{3} |* |{1} | | | | | | |over few lines followed by @tags| |{1}| | 3|{3} |* |{1} |@param|{1} |name |{1} |{string}|{1} |name parameter | | | | 4|{3} |* |{1} |@param|{1} |value|{1} |{any} |{1} |value of any type | | | | 5|{3} | | | | | | | | | |*/ | |`; expect(inspect(parsed[0])).toEqual(expected.slice(1)); }); test('single line', () => { const source = '/** @param {string} name name parameter */'; const parsed = getParser({ startLine: 12345 })(source); const expected = ` |line |start|delimiter|postDelimiter|tag |postTag|name|postName|type |postType|description |end|CR| |-----|-----|---------|-------------|------|-------|----|--------|--------|--------|---------------|---|--| |12345| |/** |{1} |@param|{1} |name|{1} |{string}|{1} |name parameter |*/ | |`; expect(inspect(parsed[0])).toEqual(expected.slice(1)); }); test('empty', () => { const expected = ''; expect(inspect(seedBlock())).toEqual(expected.slice(1)); });