import { isSpace, seedTokens, seedBlock, splitLines, splitSpace, seedSpec, } from '../../src/util'; test.each([ ['win', 'a\r\nb\r\nc', ['a\r', 'b\r', 'c']], ['unix', 'a\nb\nc', ['a', 'b', 'c']], ['mixed', 'a\nb\r\nc', ['a', 'b\r', 'c']], ['none', 'abc', ['abc']], ])('spliLines - %s', (name, source, parsed) => expect(splitLines(source)).toEqual(parsed) ); test.each([ ['pre', ' abc', [' ', 'abc']], ['pre', 'abc ', ['', 'abc ']], ['pre+post', ' abc ', [' ', 'abc ']], ['none', 'abc', ['', 'abc']], ])('spliSpace - %s', (name, source, parsed) => expect(splitSpace(source)).toEqual(parsed) ); test.each([ ['space', ' ', true], ['spaces', ' ', true], ['tab', '\t', true], ['tabs', '\t\t', true], ['line end', '\n', true], ['line ends', '\n\n', true], ['line return', '\r', true], ['line returns', '\r\r', true], ['mixed space', '\n\r\t', true], ['mixed', '\naba', false], ['alpahnumeric', '1abcd34', false], ['symbols', '*', false], ['empty', '', false], ])('isSpace - %s', (name, source, result) => expect(isSpace(source)).toBe(result) ); test('seedTokens defaults', () => { expect(seedTokens()).toEqual({ start: '', delimiter: '', postDelimiter: '', tag: '', postTag: '', name: '', postName: '', type: '', postType: '', description: '', end: '', lineEnd: '', }); }); test('seedTokens overrides', () => { expect(seedTokens({ description: 'abc' })).toEqual({ start: '', delimiter: '', postDelimiter: '', tag: '', postTag: '', name: '', postName: '', type: '', postType: '', description: 'abc', end: '', lineEnd: '', }); }); test('seedBlock defaults', () => { expect(seedBlock()).toEqual({ description: '', tags: [], source: [], problems: [], }); }); test('seedBlock overrides', () => { expect(seedBlock({ description: 'abc' })).toEqual({ description: 'abc', tags: [], source: [], problems: [], }); }); test('seedSpec defaults', () => { expect(seedSpec()).toEqual({ tag: '', name: '', type: '', optional: false, description: '', problems: [], source: [], }); }); test('seedSpec overrides', () => { expect(seedSpec({ description: 'abc' })).toEqual({ tag: '', name: '', type: '', optional: false, description: 'abc', problems: [], source: [], }); });