diff --git a/test/index.js b/test/index.js index 06b8404..7d2357f 100644 --- a/test/index.js +++ b/test/index.js @@ -7,7 +7,7 @@ import '../x-template.js'; // Set a high bar for code coverage! coverage(new URL('../x-element.js', import.meta.url).href, 100); -coverage(new URL('../x-parser.js', import.meta.url).href, 97); // TODO: Get back to 100%! +coverage(new URL('../x-parser.js', import.meta.url).href, 100); coverage(new URL('../x-template.js', import.meta.url).href, 100); test('./test-parser.html'); diff --git a/test/test-parser.js b/test/test-parser.js index ea048be..ab175a2 100644 --- a/test/test-parser.js +++ b/test/test-parser.js @@ -699,93 +699,69 @@ describe('odds and ends', () => { }); describe('errors', () => { - it('throws when initial markup cannot be parsed', () => { - const callback = () => htmlol`<`; - const expectedMessage = '[#100]'; - assertThrows(callback, expectedMessage, { startsWith: true }); - }); - - it('throws when markup after text cannot be parsed', () => { - const callback = () => htmlol`text<`; - const expectedMessage = '[#101]'; - assertThrows(callback, expectedMessage, { startsWith: true }); - }); - - it('throws when markup after comment cannot be parsed', () => { - const callback = () => htmlol`<`; - const expectedMessage = '[#102]'; - assertThrows(callback, expectedMessage, { startsWith: true }); - }); - - it('throws when markup after content interpolation cannot be parsed', () => { - const callback = () => htmlol`${VALUE}<`; - const expectedMessage = '[#103]'; - assertThrows(callback, expectedMessage, { startsWith: true }); - }); - - it('throws when markup after start tag cannot be parsed', () => { - const callback = () => htmlol`
<`; - const expectedMessage = '[#106]'; - assertThrows(callback, expectedMessage, { startsWith: true }); - }); - it('throws when markup after end tag cannot be parsed', () => { const callback = () => htmlol`
<`; - const expectedMessage = '[#114]'; + const expectedMessage = '[#110]'; assertThrows(callback, expectedMessage, { startsWith: true }); }); it('throws when attempting non-trivial interpolation of a textarea tag (preceding space)', () => { const callback = () => html``; - const expectedMessage = '[#156]'; + const expectedMessage = '[#155]'; assertThrows(callback, expectedMessage, { startsWith: true }); }); it('throws when attempting non-trivial interpolation of a textarea tag (succeeding space)', () => { const callback = () => html``; - const expectedMessage = '[#156]'; + const expectedMessage = '[#155]'; assertThrows(callback, expectedMessage, { startsWith: true }); }); it('throws when attempting non-trivial interpolation of a textarea tag', () => { const callback = () => html``; - const expectedMessage = '[#156]'; + const expectedMessage = '[#155]'; assertThrows(callback, expectedMessage, { startsWith: true }); }); it('throws when attempting non-trivial interpolation of a textarea tag via nesting', () => { const callback = () => html``; - const expectedMessage = '[#156]'; + const expectedMessage = '[#155]'; assertThrows(callback, expectedMessage, { startsWith: true }); }); it('throws when attempting non-trivial interpolation of a textarea tag via nesting', () => { const callback = () => html``; - const expectedMessage = '[#156]'; + const expectedMessage = '[#155]'; + assertThrows(callback, expectedMessage, { startsWith: true }); + }); + + it('throws when interpolation of a textarea is at the end of the template', () => { + const callback = () => html``; + const expectedMessage = '[#155]'; + assertThrows(callback, expectedMessage, { startsWith: true }); + }); + + it('throws for declarative shadow root / shadowrootmode', () => { + const callback = () => htmlol`