Skip to content

Commit f54fa73

Browse files
authored
allow invalidating a non-rendered renderable (#203)
1 parent 72af5b8 commit f54fa73

File tree

2 files changed

+2
-21
lines changed

2 files changed

+2
-21
lines changed

src/client/controller.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ export function get_controller(renderable: Renderable): Controller {
2626

2727
export function invalidate(renderable: Renderable): void {
2828
const controller = controllers.get(renderable)
29-
assert(controller, 'the renderable has not been rendered')
30-
controller._invalidate.forEach(invalidate => invalidate())
29+
controller?._invalidate.forEach(invalidate => invalidate())
3130
}
3231

3332
export function onMount(renderable: Renderable, callback: () => Cleanup): void {

src/client/tests/renderable.test.ts

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { html } from 'dhtml'
22
import { invalidate, onMount, onUnmount } from 'dhtml/client'
3-
import { assert, assert_deep_eq, assert_eq, test } from '../../../scripts/test/test.ts'
3+
import { assert_deep_eq, assert_eq, test } from '../../../scripts/test/test.ts'
44
import { setup } from './setup.ts'
55

66
test('renderables work correctly', () => {
@@ -474,24 +474,6 @@ test('invalidating an unmounted renderable does nothing', () => {
474474
assert_eq(el.textContent, 'app2')
475475
})
476476

477-
if (__DEV__) {
478-
test('invalidate throws error when renderable has not been rendered', () => {
479-
const app = {
480-
render() {
481-
return 'never rendered'
482-
},
483-
}
484-
485-
try {
486-
invalidate(app)
487-
assert(false, 'Expected error to be thrown')
488-
} catch (error) {
489-
assert(error instanceof Error)
490-
assert(/the renderable has not been rendered/.test(error.message))
491-
}
492-
})
493-
}
494-
495477
test('onMount called on already mounted renderable executes immediately', () => {
496478
const { root } = setup()
497479

0 commit comments

Comments
 (0)