import { parse, TodoFormat, build } from '../parser'; describe('Todo', () => { describe('parse', () => { const validate = (message: string, result: TodoFormat, rebuild?: string) => { const parsed = parse(message); expect(parsed).toEqual(result); const built = build(result); expect(built).toEqual(rebuild || message); } const create = (todo: TodoFormat, rebuild?: string) => { const built = build(todo); expect(built).toBe(rebuild); } test('it should be able to parse', () => { validate(' // TOdo(#asdsdf): Hello world', { prefix: ' // TOdo', content: 'Hello world', issueId: 'asdsdf', }); validate('# TODO do stuff', { prefix: '# TODO', content: 'do stuff', }, '# TODO: do stuff'); validate('todo: do stuff', { prefix: 'todo', content: 'do stuff', }); create({ prefix: '#todo', content: 'some text', issueId: '234', owner: 'foo', }, '#todo(#234,foo): some text‌⁠') create({ prefix: ' //TODO', content: 'some text', issueId: '234', }, ' //TODO(#234): some text‌⁠') }) }); });