Skip to content

Commit 952ea25

Browse files
committed
failing test
1 parent b5df097 commit 952ea25

File tree

3 files changed

+56
-2
lines changed

3 files changed

+56
-2
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { flushSync, tick } from 'svelte';
2+
import { deferred } from '../../../../src/internal/shared/utils.js';
3+
import { test } from '../../test';
4+
5+
/** @type {Array<ReturnType<typeof deferred>>} */
6+
let items = [];
7+
8+
export default test({
9+
html: `<p>pending</p>`,
10+
11+
get props() {
12+
items = [deferred(), deferred(), deferred()];
13+
14+
return {
15+
items
16+
};
17+
},
18+
19+
async test({ assert, target, component }) {
20+
items[0].resolve('a');
21+
items[1].resolve('b');
22+
items[2].resolve('c');
23+
await Promise.resolve();
24+
await Promise.resolve();
25+
await tick();
26+
flushSync();
27+
assert.htmlEqual(target.innerHTML, '<p>a</p><p>b</p><p>c</p>');
28+
29+
items = [deferred(), deferred(), deferred(), deferred()];
30+
component.items = items;
31+
await tick();
32+
assert.htmlEqual(target.innerHTML, '<p>a</p><p>b</p><p>c</p>');
33+
34+
items[0].resolve('b');
35+
items[1].resolve('c');
36+
items[2].resolve('d');
37+
items[3].resolve('e');
38+
await tick();
39+
assert.htmlEqual(target.innerHTML, '<p>b</p><p>c</p><p>d</p><p>e</p>');
40+
}
41+
});
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<script>
2+
let { items } = $props();
3+
</script>
4+
5+
<svelte:boundary>
6+
{#each items as deferred}
7+
<p>{await deferred.promise}</p>
8+
{/each}
9+
10+
{#snippet pending()}
11+
<p>pending</p>
12+
{/snippet}
13+
</svelte:boundary>

packages/svelte/tests/runtime-runes/samples/async-each/_config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ export default test({
2929
await tick();
3030
assert.htmlEqual(target.innerHTML, '<p>a</p><p>b</p><p>c</p>');
3131

32-
d.resolve(['d', 'e', 'f']);
32+
d.resolve(['d', 'e', 'f', 'g']);
3333
await tick();
34-
assert.htmlEqual(target.innerHTML, '<p>d</p><p>e</p><p>f</p>');
34+
assert.htmlEqual(target.innerHTML, '<p>d</p><p>e</p><p>f</p><p>g</p>');
3535
}
3636
});

0 commit comments

Comments
 (0)