You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte/test/runtime/samples/store-component-binding-deep/_config.js

42 lines
771 B

import { Store } from '../../../../store.js';
const store = new Store({
name: {
value: 'world'
}
});
export default {
store,
html: `
<h1>Hello world!</h1>
<input>
`,
test(assert, component, target, window) {
const input = target.querySelector('input');
const event = new window.Event('input');
const changeRecord = [];
store.on('state', ({ changed, current }) => {
changeRecord.push({ changed, current });
});
input.value = 'everybody';
input.dispatchEvent(event);
assert.equal(store.get().name.value, 'everybody');
assert.htmlEqual(target.innerHTML, `
<h1>Hello everybody!</h1>
<input>
`);
assert.deepEqual(changeRecord, [
{
current: { name: { value: 'everybody' } },
changed: { name: true }
}
]);
}
};