|
1 | 1 | import { tick } from 'svelte'; |
2 | | -import { deferred } from '../../../../src/internal/shared/utils.js'; |
3 | 2 | import { test } from '../../test'; |
4 | 3 |
|
5 | | -/** @type {ReturnType<typeof deferred>} */ |
6 | | -let d; |
7 | | - |
8 | 4 | export default test({ |
9 | 5 | compileOptions: { |
10 | 6 | dev: true |
11 | 7 | }, |
12 | | - html: `<p>pending</p>`, |
13 | 8 |
|
14 | | - get props() { |
15 | | - d = deferred(); |
| 9 | + html: ` |
| 10 | + <button>reset</button> |
| 11 | + <button>one</button> |
| 12 | + <button>two</button> |
| 13 | + <button>three</button> |
| 14 | + <p>pending</p> |
| 15 | + `, |
16 | 16 |
|
17 | | - return { |
18 | | - promise: d.promise |
19 | | - }; |
20 | | - }, |
| 17 | + async test({ assert, target }) { |
| 18 | + const [reset, one, two, three] = target.querySelectorAll('button'); |
21 | 19 |
|
22 | | - async test({ assert, target, component }) { |
23 | | - d.resolve(['a', 'b', 'c']); |
| 20 | + one.click(); |
24 | 21 | await tick(); |
25 | | - assert.htmlEqual(target.innerHTML, '<p>a</p><p>b</p><p>c</p>'); |
26 | 22 |
|
27 | | - d = deferred(); |
28 | | - component.promise = d.promise; |
| 23 | + const [div] = target.querySelectorAll('div'); |
| 24 | + assert.htmlEqual(div.innerHTML, '<p>a</p><p>b</p><p>c</p>'); |
| 25 | + |
| 26 | + reset.click(); |
29 | 27 | await tick(); |
30 | | - assert.htmlEqual(target.innerHTML, '<p>a</p><p>b</p><p>c</p>'); |
| 28 | + assert.htmlEqual(div.innerHTML, '<p>a</p><p>b</p><p>c</p>'); |
31 | 29 |
|
32 | | - d.resolve(['d', 'e', 'f', 'g']); |
| 30 | + two.click(); |
33 | 31 | await tick(); |
34 | | - assert.htmlEqual(target.innerHTML, '<p>d</p><p>e</p><p>f</p><p>g</p>'); |
| 32 | + assert.htmlEqual(div.innerHTML, '<p>d</p><p>e</p><p>f</p><p>g</p>'); |
35 | 33 |
|
36 | | - d = deferred(); |
37 | | - component.promise = d.promise; |
38 | | - d.resolve(['d', 'e', 'f', 'd']); |
| 34 | + reset.click(); |
| 35 | + three.click(); |
39 | 36 | await tick(); |
40 | 37 | assert.fail('should not allow duplicate keys'); |
41 | 38 | }, |
|
0 commit comments