mirror of https://github.com/sveltejs/svelte
fix store direct property assignment (#5416)
parent
aef5671411
commit
b3f54bd2cf
@ -0,0 +1,32 @@
|
||||
export default {
|
||||
html: `
|
||||
<p>a: {"foo":3,"bar":2}</p>
|
||||
<p>b: {"foo":3}</p>
|
||||
<button></button>
|
||||
<button></button>
|
||||
`,
|
||||
skip_if_ssr: true,
|
||||
|
||||
async test({ assert, component, target, window }) {
|
||||
const [btn1, btn2] = target.querySelectorAll('button');
|
||||
const click = new window.MouseEvent('click');
|
||||
|
||||
await btn1.dispatchEvent(click);
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<p>a: {"foo":4,"bar":2}</p>
|
||||
<p>b: {"foo":4,"baz":0}</p>
|
||||
<button></button>
|
||||
<button></button>
|
||||
`);
|
||||
|
||||
await btn2.dispatchEvent(click);
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<p>a: {"foo":5,"bar":2}</p>
|
||||
<p>b: {"foo":5,"qux":0}</p>
|
||||
<button></button>
|
||||
<button></button>
|
||||
`);
|
||||
}
|
||||
};
|
@ -0,0 +1,24 @@
|
||||
<script>
|
||||
import { writable } from '../../../../store';
|
||||
|
||||
const a = writable({ foo: 1, bar: 2 });
|
||||
$a.foo = 3;
|
||||
|
||||
const b = writable({ foo: 1, bar: 2 });
|
||||
$b = { foo: 3 };
|
||||
|
||||
function update() {
|
||||
$a.foo = $a.foo + 1;
|
||||
$b = { foo: $b.foo + 1, qux: 0 };
|
||||
}
|
||||
</script>
|
||||
|
||||
<p>a: {JSON.stringify($a)}</p>
|
||||
<p>b: {JSON.stringify($b)}</p>
|
||||
|
||||
<button on:click={() => {
|
||||
$a.foo = $a.foo + 1;
|
||||
$b = { foo: $b.foo + 1, baz: 0 };
|
||||
}} />
|
||||
|
||||
<button on:click={update} />
|
Loading…
Reference in new issue