From 291ae2878dd8b1886f725bba5a9928e0cec24bdb Mon Sep 17 00:00:00 2001 From: David A Kondrad Date: Thu, 12 Dec 2019 16:50:30 -0500 Subject: [PATCH] tests: runtime: add test to trap invalid dynamic event values --- .../event-handler-dynamic-invalid/_config.js | 28 +++++++++++++++++++ .../event-handler-dynamic-invalid/main.svelte | 13 +++++++++ 2 files changed, 41 insertions(+) create mode 100644 test/runtime/samples/event-handler-dynamic-invalid/_config.js create mode 100644 test/runtime/samples/event-handler-dynamic-invalid/main.svelte diff --git a/test/runtime/samples/event-handler-dynamic-invalid/_config.js b/test/runtime/samples/event-handler-dynamic-invalid/_config.js new file mode 100644 index 0000000000..ba1777f945 --- /dev/null +++ b/test/runtime/samples/event-handler-dynamic-invalid/_config.js @@ -0,0 +1,28 @@ +export default { + html: ` + + `, + + async test({ assert, component, target, window }) { + const [buttonUndef, buttonNull, buttonInvalid] = target.querySelectorAll( + 'button' + ); + + const event = new window.MouseEvent('click'); + let err = ""; + window.addEventListener('error', (e) => { + e.preventDefault(); + err = e.message; + }); + + // All three should not throw if proper checking is done in runtime code + await buttonUndef.dispatchEvent(event); + assert.equal(err, "", err); + + await buttonNull.dispatchEvent(event); + assert.equal(err, "", err); + + await buttonInvalid.dispatchEvent(event); + assert.equal(err, "", err); + }, +}; diff --git a/test/runtime/samples/event-handler-dynamic-invalid/main.svelte b/test/runtime/samples/event-handler-dynamic-invalid/main.svelte new file mode 100644 index 0000000000..f4e8c5fdb7 --- /dev/null +++ b/test/runtime/samples/event-handler-dynamic-invalid/main.svelte @@ -0,0 +1,13 @@ + + + + +