Skip to content

Commit a6ee20f

Browse files
committed
add another failing test
1 parent bad5096 commit a6ee20f

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

src/client/tests/renderable.test.ts

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { html } from 'dhtml'
1+
import { html, type Displayable } from 'dhtml'
22
import { invalidate, onMount, onUnmount } from 'dhtml/client'
33
import { assert, assert_deep_eq, assert_eq, test } from '../../../scripts/test/test.ts'
44
import { setup } from './setup.ts'
@@ -569,3 +569,39 @@ test('invalidating parent during child render triggers update', () => {
569569
root.render(app)
570570
assert_eq(el.innerHTML, 'loading')
571571
})
572+
573+
test('invalidating grandparent during child render triggers update', () => {
574+
const { root, el } = setup()
575+
576+
const item = {
577+
render() {
578+
app.loading = true
579+
invalidate(app)
580+
return 'created'
581+
},
582+
}
583+
584+
const middle = {
585+
item: null as Displayable,
586+
587+
render() {
588+
return this.item
589+
},
590+
}
591+
592+
const app = {
593+
loading: false,
594+
595+
render() {
596+
if (this.loading) return 'loading'
597+
return middle
598+
},
599+
}
600+
601+
root.render(app)
602+
assert_eq(el.innerHTML, '')
603+
604+
middle.item = item
605+
invalidate(middle)
606+
assert_eq(el.innerHTML, 'loading')
607+
})

0 commit comments

Comments
 (0)