update test

pull/16197/head
Rich Harris 5 months ago
parent 1dd383ea54
commit 7762f29260

@ -6,30 +6,53 @@ import { test } from '../../test';
let d;
export default test({
html: `<p>pending</p>`,
html: `
<button>reset</button>
<button>hello</button>
<button>goodbye</button>
<p>pending</p>
`,
get props() {
d = deferred();
async test({ assert, target }) {
const [reset, hello, goodbye] = target.querySelectorAll('button');
return {
promise: d.promise
};
},
async test({ assert, target, component }) {
d.resolve('hello');
flushSync(() => hello.click());
await Promise.resolve();
await Promise.resolve();
await tick();
flushSync();
assert.htmlEqual(target.innerHTML, '<h1>hello</h1>');
assert.htmlEqual(
target.innerHTML,
`
<button>reset</button>
<button>hello</button>
<button>goodbye</button>
<h1>hello</h1>
`
);
component.promise = (d = deferred()).promise;
flushSync(() => reset.click());
await tick();
assert.htmlEqual(target.innerHTML, '<h1>hello</h1>');
assert.htmlEqual(
target.innerHTML,
`
<button>reset</button>
<button>hello</button>
<button>goodbye</button>
<h1>hello</h1>
`
);
d.resolve('wheee');
flushSync(() => goodbye.click());
await tick();
assert.htmlEqual(target.innerHTML, '<h1>wheee</h1>');
assert.htmlEqual(
target.innerHTML,
`
<button>reset</button>
<button>hello</button>
<button>goodbye</button>
<h1>goodbye</h1>
`
);
}
});

@ -1,9 +1,13 @@
<script>
let { promise } = $props();
let deferred = $state(Promise.withResolvers());
</script>
<button onclick={() => deferred = Promise.withResolvers()}>reset</button>
<button onclick={() => deferred.resolve('hello')}>hello</button>
<button onclick={() => deferred.resolve('goodbye')}>goodbye</button>
<svelte:boundary>
<h1>{await promise}</h1>
<h1>{await deferred.promise}</h1>
{#snippet pending()}
<p>pending</p>

Loading…
Cancel
Save