tests: runtime: add test to trap invalid dynamic event values

pull/4105/head
David A Kondrad 6 years ago
parent 61a9edb397
commit 291ae2878d

@ -0,0 +1,28 @@
export default {
html: `<button>undef</button>
<button>null</button>
<button>invalid</button>`,
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);
},
};

@ -0,0 +1,13 @@
<script>
let handlerUndef;
let handlerNull;
let handlerInvalid;
handlerUndef = undefined;
handlerNull = null;
handlerInvalid = 42;
</script>
<button on:click={handlerUndef}>undef</button>
<button on:click={handlerNull}>null</button>
<button on:click={handlerInvalid}>invalid</button>
Loading…
Cancel
Save