import { getClassMeta as classMeta, cleanComment } from './ast-parser'; function getClassMeta(src) { return classMeta(src).nodes; } describe('getClassMeta', () => { it('able to hande wrong hbs', ()=>{ expect(getClassMeta('\}}').length).toEqual(0); }); it('able to handle pure mustache', ()=>{ expect(getClassMeta('{{foo}}').length).toEqual(1); }); it('able to handle modifiers', ()=>{ expect(getClassMeta('').length).toEqual(1); }); it('able to handle blocks', ()=>{ expect(getClassMeta('{{#foo}}{{/foo}}').length).toEqual(1); }); it('able to handle block components', ()=>{ expect(getClassMeta('').length).toEqual(1); }); it('able to handle pure mustache with subexp', ()=>{ expect(getClassMeta('{{foo (bar)}}')[0].length).toEqual(2); }); it('able to handle modifiers with subexp', ()=>{ expect(getClassMeta('')[0].length).toEqual(2); }); it('able to handle blocks with subexp', ()=>{ expect(getClassMeta('{{#foo (bar)}}{{/foo}}')[0].length).toEqual(2); }); }); describe('cleanComment', () => { it('able to remove script tag from comment', ()=>{ expect(cleanComment(``)).toEqual('foo'); }); it('able to remove js comment from line', ()=>{ expect(cleanComment(` @ts-ignore // foo`)).toEqual('@ts-ignore'); }); it('able to remove js comment from multi line', ()=>{ expect(cleanComment(` @ts-ignore // foo @ts-ignore // foo @ts-ignore // foo `)).toEqual(new Array(3).fill('@ts-ignore').join('\n')); }); })