UNPKG

els-addon-typed-templates

Version:
49 lines (45 loc) 1.74 kB
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('<input {{foo}} >').length).toEqual(1); }); it('able to handle blocks', ()=>{ expect(getClassMeta('{{#foo}}{{/foo}}').length).toEqual(1); }); it('able to handle block components', ()=>{ expect(getClassMeta('<Boo as |a|></Boo>').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('<input {{foo (bar)}} >')[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(`<script>foo</script>`)).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')); }); })