Skip to content

Commit 858dc35

Browse files
committed
add test
1 parent 60f8653 commit 858dc35

File tree

2 files changed

+99
-0
lines changed

2 files changed

+99
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import { flushSync, tick } from 'svelte';
2+
import { test } from '../../test';
3+
4+
export default test({
5+
async test({ assert, target }) {
6+
await Promise.resolve();
7+
8+
assert.htmlEqual(
9+
target.innerHTML,
10+
`
11+
<h1>a</h1>
12+
<button>a</button>
13+
<button>b</button>
14+
<button>c</button>
15+
<button>ok</button>
16+
<p>a</p>
17+
`
18+
);
19+
20+
const [a, b, c, ok] = target.querySelectorAll('button');
21+
22+
flushSync(() => b.click());
23+
await Promise.resolve();
24+
await Promise.resolve();
25+
26+
assert.htmlEqual(
27+
target.innerHTML,
28+
`
29+
<h1>c</h1>
30+
<button>a</button>
31+
<button>b</button>
32+
<button>c</button>
33+
<button>ok</button>
34+
<p>c</p>
35+
`
36+
);
37+
38+
flushSync(() => ok.click());
39+
40+
flushSync(() => b.click());
41+
await Promise.resolve();
42+
await Promise.resolve();
43+
44+
assert.htmlEqual(
45+
target.innerHTML,
46+
`
47+
<h1>b</h1>
48+
<button>a</button>
49+
<button>b</button>
50+
<button>c</button>
51+
<button>ok</button>
52+
<p>b</p>
53+
`
54+
);
55+
}
56+
});
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<script lang=ts>
2+
let route = $state('a');
3+
let ok = $state(false);
4+
5+
function goto(r) {
6+
return Promise.resolve().then(() => {
7+
route = r;
8+
throw new Error('nope');
9+
});
10+
}
11+
</script>
12+
13+
<h1>{route}</h1>
14+
<button onclick={() => route = 'a'}>a</button>
15+
<button onclick={() => route = 'b'}>b</button>
16+
<button onclick={() => route = 'c'}>c</button>
17+
<button onclick={() => ok = true}>ok</button>
18+
19+
<svelte:boundary>
20+
{#if route === 'a'}
21+
<p>a</p>
22+
{/if}
23+
24+
{#if route === 'b'}
25+
{#if ok}
26+
<p>b</p>
27+
{:else}
28+
{await goto('c')}
29+
{/if}
30+
{/if}
31+
32+
{#if route === 'c'}
33+
<p>c</p>
34+
{/if}
35+
36+
{#snippet pending()}
37+
<p>pending...</p>
38+
{/snippet}
39+
40+
{#snippet failed(error, reset)}
41+
<button onclick={reset}>retry</button>
42+
{/snippet}
43+
</svelte:boundary>

0 commit comments

Comments
 (0)