add more tests, fix example

pull/9851/head
Dominic Gannaway 3 years ago
parent 605f0baa9d
commit 4984b045a1

@ -23,7 +23,17 @@ declare namespace $state {
* *
* Example: * Example:
* ```ts * ```ts
* let count = $state.raw(0); * <script>
* let items = $state.raw([0]);
*
* const addItem = () => {
* items = [...items, items.length];
* };
* </script>
*
* <button on:click={addItem}>
* {items.join(', ')}
* </button>
* ``` * ```
* *
* https://svelte-5-preview.vercel.app/docs/runes#$state-raw * https://svelte-5-preview.vercel.app/docs/runes#$state-raw

@ -0,0 +1,15 @@
import { test } from '../../test';
export default test({
html: `<button>0</button>`,
async test({ assert, target }) {
const btn = target.querySelector('button');
await btn?.click();
assert.htmlEqual(target.innerHTML, `<button>0</button>`);
await btn?.click();
assert.htmlEqual(target.innerHTML, `<button>0</button>`);
}
});

@ -0,0 +1,19 @@
<script>
class Counter {
#count = $state.raw();
constructor(initial_count) {
this.#count = { a: initial_count };
}
get count() {
return this.#count;
}
set count(val) {
this.#count = val;
}
}
const counter = new Counter(0);
</script>
<button on:click={() => counter.count.a++}>{counter.count.a}</button>

@ -0,0 +1,15 @@
import { test } from '../../test';
export default test({
html: `<button>0</button>`,
async test({ assert, target }) {
const btn = target.querySelector('button');
await btn?.click();
assert.htmlEqual(target.innerHTML, `<button>0</button>`);
await btn?.click();
assert.htmlEqual(target.innerHTML, `<button>0</button>`);
}
});

@ -0,0 +1,8 @@
<script>
class Counter {
count = $state.raw({ a: 0 });
}
const counter = new Counter();
</script>
<button on:click={() => counter.count.a++}>{counter.count.a}</button>
Loading…
Cancel
Save