Skip to content

Commit 4e442b7

Browse files
committed
Add test coverage for both built-in processor strategies
Existing test coverage lacked tests that exercised _both_ the default `processPropertyIdentity` strategy alongside the optional `propertyIdentityOrBooleanAttribute` strategy. This commit doesn't contain any implementation changes, but broadens test coverage instead.
1 parent 187af82 commit 4e442b7

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

test/template-instance.ts

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,32 @@ describe('template-instance', () => {
2828
root.appendChild(instance)
2929
expect(root.innerHTML).to.equal(`<div>Hello world</div>`)
3030
})
31-
it('applies data to nested templated element nodes', () => {
31+
it('applies data to nested templated element nodes with the default processPropertyIdentity', () => {
3232
const root = document.createElement('div')
3333
const template = Object.assign(document.createElement('template'), {
3434
innerHTML: '<template><div>{{x}}</div></template>',
3535
})
36-
root.appendChild(new TemplateInstance(template, {x: 'Hello world'}))
36+
const instance = new TemplateInstance(template, {x: 'Hello world'})
3737

38+
root.appendChild(instance)
3839
expect(root.innerHTML).to.equal('<template><div>Hello world</div></template>')
40+
expect(template.innerHTML).to.equal('<template><div>{{x}}</div></template>')
41+
instance.update({x: 'Goodbye world'})
42+
expect(root.innerHTML).to.equal('<template><div>Goodbye world</div></template>')
43+
expect(template.innerHTML).to.equal('<template><div>{{x}}</div></template>')
44+
})
45+
it('applies data to nested templated element nodes with propertyIdentityOrBooleanAttribute', () => {
46+
const template = Object.assign(document.createElement('template'), {
47+
innerHTML: '<template><div hidden="{{hidden}}"></div></template>',
48+
})
49+
const instance = new TemplateInstance(template, {hidden: true}, propertyIdentityOrBooleanAttribute)
50+
51+
const root = document.createElement('div')
52+
root.appendChild(instance)
53+
expect(root.innerHTML).to.equal('<template><div hidden=""></div></template>')
54+
expect(template.innerHTML).to.equal('<template><div hidden="{{hidden}}"></div></template>')
55+
instance.update({hidden: false})
56+
expect(root.innerHTML).to.equal('<template><div></div></template>')
3957
})
4058
it('applies data to templated DocumentFragment nodes', () => {
4159
const template = document.createElement('template')
@@ -357,7 +375,7 @@ describe('template-instance', () => {
357375
})
358376

359377
describe('handling InnerTemplatePart', () => {
360-
it('makes outer state available to inner parts', () => {
378+
it('makes outer state available to InnerTemplatePart elements with [directive]', () => {
361379
const processor = createProcessor((part, value, state) => {
362380
if (part instanceof InnerTemplatePart && part.directive === 'if') {
363381
if (typeof state === 'object' && (state as Record<string, unknown>)[part.expression]) {

0 commit comments

Comments
 (0)