Skip to content

Commit 7ffc25e

Browse files
committed
chore: reset uid between tests
1 parent 868e3fa commit 7ffc25e

File tree

4 files changed

+53
-15
lines changed

4 files changed

+53
-15
lines changed

packages/svelte/src/internal/client/dom/template.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,10 @@ export function append(anchor, dom) {
252252

253253
let uid = 1;
254254

255+
export function reset_props_id() {
256+
uid = 1;
257+
}
258+
255259
/**
256260
* Create (or hydrate) an unique UID for the component instance.
257261
*/

packages/svelte/tests/runtime-legacy/shared.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { setup_html_equal } from '../html_equal.js';
1111
import { raf } from '../animation-helpers.js';
1212
import type { CompileOptions } from '#compiler';
1313
import { suite_with_variants, type BaseTest } from '../suite.js';
14+
import { reset_props_id } from '../../src/internal/client/dom/template.js';
1415

1516
type Assert = typeof import('vitest').assert & {
1617
htmlEqual(a: string, b: string, description?: string): void;
@@ -345,6 +346,7 @@ async function run_test_variant(
345346

346347
if (runes) {
347348
props = proxy({ ...(config.props || {}) });
349+
reset_props_id();
348350
if (manual_hydrate) {
349351
hydrate_fn = () => {
350352
instance = hydrate(mod.default, {

packages/svelte/tests/runtime-runes/samples/props-id/_config.js

Lines changed: 46 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,57 @@ import { test } from '../../test';
33

44
export default test({
55
test({ assert, target, variant }) {
6-
const ps = [...target.querySelectorAll('p')].map((p) => p.innerHTML);
7-
const unique = new Set(ps);
8-
assert.equal(ps.length, unique.size);
9-
10-
if (variant === 'hydrate') {
11-
const start = ps.map((p) => p.substring(0, 1));
12-
assert.deepEqual(start, ['s', 's', 's', 's']);
6+
if (variant === 'dom') {
7+
assert.htmlEqual(
8+
target.innerHTML,
9+
`
10+
<button>toggle</button>
11+
<h1>c1</h1>
12+
<p>c2</p>
13+
<p>c3</p>
14+
<p>c4</p>
15+
`
16+
);
17+
} else {
18+
assert.htmlEqual(
19+
target.innerHTML,
20+
`
21+
<button>toggle</button>
22+
<h1>s1</h1>
23+
<p>s2</p>
24+
<p>s3</p>
25+
<p>s4</p>
26+
`
27+
);
1328
}
1429

1530
let button = target.querySelector('button');
1631
flushSync(() => button?.click());
1732

18-
const ps_after = [...target.querySelectorAll('p')].map((p) => p.innerHTML);
19-
const unique_after = new Set(ps_after);
20-
assert.equal(ps_after.length, unique_after.size);
21-
22-
if (variant === 'hydrate') {
23-
const start = ps_after.map((p) => p.substring(0, 1));
24-
assert.deepEqual(start, ['s', 's', 's', 's', 'c']);
33+
if (variant === 'dom') {
34+
assert.htmlEqual(
35+
target.innerHTML,
36+
`
37+
<button>toggle</button>
38+
<h1>c1</h1>
39+
<p>c2</p>
40+
<p>c3</p>
41+
<p>c4</p>
42+
<p>c5</p>
43+
`
44+
);
45+
} else {
46+
assert.htmlEqual(
47+
target.innerHTML,
48+
`
49+
<button>toggle</button>
50+
<h1>s1</h1>
51+
<p>s2</p>
52+
<p>s3</p>
53+
<p>s4</p>
54+
<p>c1</p>
55+
`
56+
);
2557
}
2658
}
2759
});

packages/svelte/tests/runtime-runes/samples/props-id/main.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
<button onclick={() => show = !show}>toggle</button>
1010

11-
<p>{id}</p>
11+
<h1>{id}</h1>
1212

1313
<Child />
1414
<Child />

0 commit comments

Comments
 (0)