diff --git a/src/client/controller.ts b/src/client/controller.ts index 73f4cc05..04609b67 100644 --- a/src/client/controller.ts +++ b/src/client/controller.ts @@ -26,8 +26,7 @@ export function get_controller(renderable: Renderable): Controller { export function invalidate(renderable: Renderable): void { const controller = controllers.get(renderable) - assert(controller, 'the renderable has not been rendered') - controller._invalidate.forEach(invalidate => invalidate()) + controller?._invalidate.forEach(invalidate => invalidate()) } export function onMount(renderable: Renderable, callback: () => Cleanup): void { diff --git a/src/client/tests/renderable.test.ts b/src/client/tests/renderable.test.ts index b93b70e5..db841260 100644 --- a/src/client/tests/renderable.test.ts +++ b/src/client/tests/renderable.test.ts @@ -1,6 +1,6 @@ import { html } from 'dhtml' import { invalidate, onMount, onUnmount } from 'dhtml/client' -import { assert, assert_deep_eq, assert_eq, test } from '../../../scripts/test/test.ts' +import { assert_deep_eq, assert_eq, test } from '../../../scripts/test/test.ts' import { setup } from './setup.ts' test('renderables work correctly', () => { @@ -474,24 +474,6 @@ test('invalidating an unmounted renderable does nothing', () => { assert_eq(el.textContent, 'app2') }) -if (__DEV__) { - test('invalidate throws error when renderable has not been rendered', () => { - const app = { - render() { - return 'never rendered' - }, - } - - try { - invalidate(app) - assert(false, 'Expected error to be thrown') - } catch (error) { - assert(error instanceof Error) - assert(/the renderable has not been rendered/.test(error.message)) - } - }) -} - test('onMount called on already mounted renderable executes immediately', () => { const { root } = setup()