Skip to content

Commit fd5f5bb

Browse files
authored
monkey-patch console.log and console.warn for all tests (#11265)
* monkey-patch console.log and console.warn for all tests * update legacy tests * various * tests passing * tidy up * tidy up * tidier output
1 parent 47ba488 commit fd5f5bb

File tree

178 files changed

+404
-927
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

178 files changed

+404
-927
lines changed

packages/svelte/tests/hydration/samples/ignore-mismatched-href/_config.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,9 @@ export default test({
1111

1212
test(assert, target) {
1313
assert.equal(target.querySelector('a')?.getAttribute('href'), '/bar');
14-
}
14+
},
15+
16+
errors: [
17+
'Detected a href attribute value change during hydration. This will not be repaired during hydration, the href value that came from the server will be used. Related element:'
18+
]
1519
});

packages/svelte/tests/hydration/test.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ interface HydrationTest extends BaseTest {
3232
) => void | Promise<void>;
3333
before_test?: () => void;
3434
after_test?: () => void;
35+
errors?: any[];
3536
}
3637

3738
function read(path: string): string | void {
@@ -65,6 +66,7 @@ const { test, run } = suite<HydrationTest>(async (config, cwd) => {
6566
const snapshot = config.snapshot ? config.snapshot(target) : {};
6667

6768
const error = console.error;
69+
const errors: any[] = [];
6870
let got_hydration_error = false;
6971
console.error = (message: any) => {
7072
if (typeof message === 'string' && message.startsWith('ERR_SVELTE_HYDRATION_MISMATCH')) {
@@ -73,7 +75,7 @@ const { test, run } = suite<HydrationTest>(async (config, cwd) => {
7375
error(message);
7476
}
7577
} else {
76-
error(message);
78+
errors.push(message);
7779
}
7880
};
7981

@@ -85,12 +87,19 @@ const { test, run } = suite<HydrationTest>(async (config, cwd) => {
8587
});
8688

8789
console.error = error;
90+
8891
if (config.expect_hydration_error) {
8992
assert.ok(got_hydration_error, 'Expected hydration error');
9093
} else {
9194
assert.ok(!got_hydration_error, 'Unexpected hydration error');
9295
}
9396

97+
if (config.errors) {
98+
assert.deepEqual(errors, config.errors);
99+
} else if (errors.length) {
100+
throw new Error(`Unexpected errors: ${errors.join('\n')}`);
101+
}
102+
94103
const expected = read(`${cwd}/_expected.html`) ?? rendered.html;
95104
assert_html_equal(target.innerHTML, expected);
96105

packages/svelte/tests/runtime-browser/test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ let browser: import('@playwright/test').Browser;
1414

1515
beforeAll(async () => {
1616
browser = await chromium.launch();
17-
console.log('[runtime-browser] Launched browser');
1817
}, 20000);
1918

2019
afterAll(async () => {

packages/svelte/tests/runtime-legacy/samples/binding-this-multiple/_config.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,24 @@ import { flushSync } from 'svelte';
22
import { test } from '../../test';
33

44
export default test({
5-
test({ assert, component, target }) {
5+
test({ assert, target, logs }) {
66
const [b1, b2, b3] = target.querySelectorAll('button');
77
const first_h1 = target.querySelector('h1');
88

9-
assert.deepEqual(component.log, [undefined, first_h1]);
9+
assert.deepEqual(logs, [undefined, first_h1]);
1010

1111
flushSync(() => {
1212
b3.click();
1313
});
1414

1515
const third_h1 = target.querySelector('h1');
1616

17-
assert.deepEqual(component.log, [undefined, first_h1, third_h1]);
17+
assert.deepEqual(logs, [undefined, first_h1, third_h1]);
1818

1919
flushSync(() => {
2020
b1.click();
2121
});
2222

23-
assert.deepEqual(component.log, [undefined, first_h1, third_h1, target.querySelector('h1')]);
23+
assert.deepEqual(logs, [undefined, first_h1, third_h1, target.querySelector('h1')]);
2424
}
2525
});

packages/svelte/tests/runtime-legacy/samples/binding-this-multiple/main.svelte

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
<script>
22
let activeTab = 0;
33
let activeHeading;
4-
export let log = [];
54
6-
$: log.push(activeHeading);
5+
$: console.log(activeHeading);
76
</script>
87

98
<div class="tabs">

packages/svelte/tests/runtime-legacy/samples/component-nested-deep/_config.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@ import { unmount } from 'svelte';
44
export default test({
55
test({ component }) {
66
unmount(component.l1);
7-
}
7+
},
8+
9+
warnings: ['Tried to unmount a component that was not mounted.']
810
});
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<script>
22
let keys = ['a', 'b'];
33
let items = ['c', 'd'];
4-
export let log;
4+
55
function setKey(key, value, item) {
6-
log.push(`setKey(${key}, ${value}, ${item})`);
7-
}
6+
console.log(`setKey(${key}, ${value}, ${item})`);
7+
}
88
</script>
99

1010
{#each items as item (item)}
1111
{#each keys as key (key)}
1212
<slot {key} {item} set={(value) => setKey(key, value, item)} />
1313
{/each}
14-
{/each}
14+
{/each}

packages/svelte/tests/runtime-legacy/samples/component-slot-context-props-each-nested/_config.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,26 @@ export default test({
77
<button type="button">Set a-d</button>
88
<button type="button">Set b-d</button>
99
`,
10-
async test({ assert, target, window, component }) {
10+
11+
async test({ assert, target, window, logs }) {
1112
const [btn1, btn2, btn3, btn4] = target.querySelectorAll('button');
1213
const click = new window.MouseEvent('click', { bubbles: true });
1314

1415
await btn1.dispatchEvent(click);
15-
assert.deepEqual(component.log, ['setKey(a, value-a-c, c)']);
16+
assert.deepEqual(logs, ['setKey(a, value-a-c, c)']);
1617

1718
await btn2.dispatchEvent(click);
18-
assert.deepEqual(component.log, ['setKey(a, value-a-c, c)', 'setKey(b, value-b-c, c)']);
19+
assert.deepEqual(logs, ['setKey(a, value-a-c, c)', 'setKey(b, value-b-c, c)']);
1920

2021
await btn3.dispatchEvent(click);
21-
assert.deepEqual(component.log, [
22+
assert.deepEqual(logs, [
2223
'setKey(a, value-a-c, c)',
2324
'setKey(b, value-b-c, c)',
2425
'setKey(a, value-a-d, d)'
2526
]);
2627

2728
await btn4.dispatchEvent(click);
28-
assert.deepEqual(component.log, [
29+
assert.deepEqual(logs, [
2930
'setKey(a, value-a-c, c)',
3031
'setKey(b, value-b-c, c)',
3132
'setKey(a, value-a-d, d)',
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<script>
22
import Nested from './Nested.svelte';
3-
export let log = [];
43
</script>
54

6-
<Nested {log} let:set let:key let:item>
5+
<Nested let:set let:key let:item>
76
<button type="button" on:click={() => set(`value-${key}-${item}`)}>Set {key}-{item}</button>
8-
</Nested>
7+
</Nested>
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<script>
22
let keys = ['a', 'b'];
3-
export let log;
3+
44
function setKey(key, value) {
5-
log.push(`setKey(${key}, ${value})`);
6-
}
5+
console.log(`setKey(${key}, ${value})`);
6+
}
77
</script>
88

99
{#each keys as key (key)}
1010
<slot {key} set={(value) => setKey(key, value)} />
11-
{/each}
11+
{/each}

packages/svelte/tests/runtime-legacy/samples/component-slot-context-props-each/_config.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@ export default test({
55
<button type="button">Set a</button>
66
<button type="button">Set b</button>
77
`,
8-
async test({ assert, target, window, component }) {
8+
9+
async test({ assert, target, window, logs }) {
910
const [btn1, btn2] = target.querySelectorAll('button');
1011
const click = new window.MouseEvent('click', { bubbles: true });
1112

1213
await btn1.dispatchEvent(click);
13-
assert.deepEqual(component.log, ['setKey(a, value-a)']);
14+
assert.deepEqual(logs, ['setKey(a, value-a)']);
1415

1516
await btn2.dispatchEvent(click);
16-
assert.deepEqual(component.log, ['setKey(a, value-a)', 'setKey(b, value-b)']);
17+
assert.deepEqual(logs, ['setKey(a, value-a)', 'setKey(b, value-b)']);
1718
}
1819
});
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<script>
22
import Nested from './Nested.svelte';
3-
export let log = [];
43
</script>
54

6-
<Nested {log} let:set let:key>
5+
<Nested let:set let:key>
76
<button type="button" on:click={() => set(`value-${key}`)}>Set {key}</button>
8-
</Nested>
7+
</Nested>
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
<script>
2-
export let log;
32
function setKey(key, value) {
4-
log.push(`setKey(${key}, ${value})`);
5-
}
3+
console.log(`setKey(${key}, ${value})`);
4+
}
65
</script>
76

87
<slot key="a" set={setKey} />
9-
<slot key="b" set={setKey} />
8+
<slot key="b" set={setKey} />
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<script>
22
import Inner from './Inner.svelte';
3-
export let log;
43
</script>
54

6-
<Inner {log} let:key let:set>
5+
<Inner let:key let:set>
76
<slot {key} set={(value) => set(key, value)} />
8-
</Inner>
7+
</Inner>

packages/svelte/tests/runtime-legacy/samples/component-slot-context-props-let/_config.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@ export default test({
55
<button type="button">Set a</button>
66
<button type="button">Set b</button>
77
`,
8-
async test({ assert, target, window, component }) {
8+
9+
async test({ assert, target, window, logs }) {
910
const [btn1, btn2] = target.querySelectorAll('button');
1011
const click = new window.MouseEvent('click', { bubbles: true });
1112

1213
await btn1.dispatchEvent(click);
13-
assert.deepEqual(component.log, ['setKey(a, value-a)']);
14+
assert.deepEqual(logs, ['setKey(a, value-a)']);
1415

1516
await btn2.dispatchEvent(click);
16-
assert.deepEqual(component.log, ['setKey(a, value-a)', 'setKey(b, value-b)']);
17+
assert.deepEqual(logs, ['setKey(a, value-a)', 'setKey(b, value-b)']);
1718
}
1819
});
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<script>
22
import Nested from './Nested.svelte';
3-
export let log = [];
43
</script>
54

6-
<Nested {log} let:set let:key>
5+
<Nested let:set let:key>
76
<button type="button" on:click={() => set(`value-${key}`)}>Set {key}</button>
87
</Nested>

packages/svelte/tests/runtime-legacy/samples/destroy-twice/_config.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,10 @@ export default test({
55
test({ component }) {
66
unmount(component);
77
unmount(component);
8-
}
8+
},
9+
10+
warnings: [
11+
'Tried to unmount a component that was not mounted.',
12+
'Tried to unmount a component that was not mounted.'
13+
]
914
});

packages/svelte/tests/runtime-legacy/samples/empty-component-destroy/Empty.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
<script>
3-
import { onDestroy } from 'svelte';
3+
import { onDestroy } from 'svelte';
44
55
onDestroy(() => {
66
console.log('destroy');
Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,14 @@
11
import { test } from '../../test';
22

3-
/**
4-
* @type {{ (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }}
5-
*/
6-
let log;
7-
83
export default test({
94
html: `
105
<button>destroy component</button>
116
`,
127

13-
before_test() {
14-
log = console.log;
15-
},
16-
after_test() {
17-
console.log = log;
18-
},
19-
20-
async test({ assert, target, window }) {
8+
async test({ assert, target, window, logs }) {
219
const button = target.querySelector('button');
2210
const event = new window.MouseEvent('click');
23-
/**
24-
* @type {any[]}
25-
*/
26-
const messages = [];
27-
console.log = (msg) => messages.push(msg);
11+
2812
// @ts-ignore
2913
await button.dispatchEvent(event);
3014
assert.htmlEqual(
@@ -33,6 +17,6 @@ export default test({
3317
<button>destroy component</button>
3418
`
3519
);
36-
assert.deepEqual(messages, ['destroy']);
20+
assert.deepEqual(logs, ['destroy']);
3721
}
3822
});

packages/svelte/tests/runtime-legacy/samples/empty-component-destroy/main.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
let active = true;
44
</script>
55

6-
<button on:click='{() => active = false }'>destroy component</button>
6+
<button on:click={() => active = false }>destroy component</button>
77

88
<svelte:component this={active ? Empty : null} />

packages/svelte/tests/runtime-legacy/samples/event-handler-mutation-scope/_config.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@ import { flushSync } from 'svelte';
22
import { ok, test } from '../../test';
33

44
export default test({
5-
test({ assert, component, target, window }) {
5+
test({ assert, logs, target }) {
66
const button = target.querySelector('button');
77
ok(button);
88

99
flushSync(() => {
1010
button.click();
1111
});
1212

13-
assert.deepEqual(component.log, ['1 - 1']);
13+
assert.deepEqual(logs, ['1 - 1']);
1414

1515
flushSync(() => {
1616
button.click();
1717
});
1818

19-
assert.deepEqual(component.log, ['1 - 1', '2 - 2']);
19+
assert.deepEqual(logs, ['1 - 1', '2 - 2']);
2020
}
2121
});

packages/svelte/tests/runtime-legacy/samples/event-handler-mutation-scope/main.svelte

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<script>
2-
export let log = [];
32
let referenced_directly = 0;
43
let not_referenced_directly = 0;
54
let css_based_on_not_referenced = '';
@@ -8,7 +7,7 @@
87
referenced_directly += 1;
98
not_referenced_directly += 1;
109
css_based_on_not_referenced = not_referenced_directly % 2 == 1 ? 'background-color: red' : '';
11-
log.push(referenced_directly + ' - ' + not_referenced_directly); //only referenced_directly is increasing
10+
console.log(referenced_directly + ' - ' + not_referenced_directly); //only referenced_directly is increasing
1211
}
1312
</script>
1413

0 commit comments

Comments
 (0)