update tests

pull/9826/head
Rich Harris 3 years ago
parent 3f4cc1d1a2
commit 74765296ab

@ -1,12 +1,13 @@
import { test } from '../../test'; import { test } from '../../test';
import { flushSync } from 'svelte'; import { flushSync } from 'svelte';
import { log } from './log.js';
export default test({ export default test({
get props() { before_test() {
return { log: [] }; log.length = 0;
}, },
async test({ assert, target, component }) { async test({ assert, target }) {
const [b1] = target.querySelectorAll('button'); const [b1] = target.querySelectorAll('button');
flushSync(() => { flushSync(() => {
b1.click(); b1.click();
@ -20,6 +21,6 @@ export default test({
flushSync(() => { flushSync(() => {
b1.click(); b1.click();
}); });
assert.deepEqual(component.log, [0, 2, 4]); assert.deepEqual(log, [0, 2, 4]);
} }
}); });

@ -0,0 +1,2 @@
/** @type {any[]} */
export const log = [];

@ -1,5 +1,5 @@
<script> <script>
const {log} = $props(); import { log } from './log.js';
let count = $state(0); let count = $state(0);
const derived = $derived(Math.floor(count / 2)); const derived = $derived(Math.floor(count / 2));

@ -1,12 +1,13 @@
import { test } from '../../test'; import { test } from '../../test';
import { flushSync } from 'svelte'; import { flushSync } from 'svelte';
import { log } from './log.js';
export default test({ export default test({
get props() { before_test() {
return { log: [] }; log.length = 0;
}, },
async test({ assert, target, component }) { async test({ assert, target }) {
const [b1] = target.querySelectorAll('button'); const [b1] = target.querySelectorAll('button');
flushSync(() => { flushSync(() => {
b1.click(); b1.click();
@ -14,6 +15,6 @@ export default test({
flushSync(() => { flushSync(() => {
b1.click(); b1.click();
}); });
assert.deepEqual(component.log, ['init 0', 'cleanup 2', 'init 2', 'cleanup 4', 'init 4']); assert.deepEqual(log, ['init 0', 'cleanup 2', 'init 2', 'cleanup 4', 'init 4']);
} }
}); });

@ -0,0 +1,2 @@
/** @type {any[]} */
export const log = [];

@ -1,5 +1,5 @@
<script> <script>
const {log} = $props(); import { log } from './log.js';
let count = $state(0); let count = $state(0);

@ -1,12 +1,13 @@
import { test } from '../../test'; import { test } from '../../test';
import { flushSync } from 'svelte'; import { flushSync } from 'svelte';
import { log } from './log.js';
export default test({ export default test({
get props() { before_test() {
return { log: [] }; log.length = 0;
}, },
async test({ assert, target, component }) { async test({ assert, target }) {
const [b1] = target.querySelectorAll('button'); const [b1] = target.querySelectorAll('button');
flushSync(() => { flushSync(() => {
b1.click(); b1.click();
@ -14,6 +15,6 @@ export default test({
flushSync(() => { flushSync(() => {
b1.click(); b1.click();
}); });
assert.deepEqual(component.log, ['A', 'B', 'A', 'B', 'A', 'B']); assert.deepEqual(log, ['A', 'B', 'A', 'B', 'A', 'B']);
} }
}); });

@ -0,0 +1,2 @@
/** @type {any[]} */
export const log = [];

@ -1,5 +1,5 @@
<script> <script>
const {log} = $props(); import { log } from './log.js';
let s = $state(0); let s = $state(0);
let d = $derived(s) let d = $derived(s)

@ -1,12 +1,13 @@
import { flushSync } from 'svelte'; import { flushSync } from 'svelte';
import { test } from '../../test'; import { test } from '../../test';
import { log } from './log.js';
export default test({ export default test({
get props() { before_test() {
return { log: [] }; log.length = 0;
}, },
async test({ assert, target, component }) { async test({ assert, target }) {
const [b1, b2, b3] = target.querySelectorAll('button'); const [b1, b2, b3] = target.querySelectorAll('button');
flushSync(() => { flushSync(() => {
@ -14,19 +15,19 @@ export default test({
b2.click(); b2.click();
}); });
assert.deepEqual(component.log, [0, 1]); assert.deepEqual(log, [0, 1]);
flushSync(() => { flushSync(() => {
b3.click(); b3.click();
}); });
assert.deepEqual(component.log, [0, 1, 'cleanup 1', 'cleanup 2']); assert.deepEqual(log, [0, 1, 'cleanup 1', 'cleanup 2']);
flushSync(() => { flushSync(() => {
b1.click(); b1.click();
b2.click(); b2.click();
}); });
assert.deepEqual(component.log, [0, 1, 'cleanup 1', 'cleanup 2']); assert.deepEqual(log, [0, 1, 'cleanup 1', 'cleanup 2']);
} }
}); });

@ -0,0 +1,2 @@
/** @type {any[]} */
export const log = [];

@ -1,5 +1,5 @@
<script> <script>
let { log} = $props(); import { log } from './log.js';
let x = $state(0); let x = $state(0);
let y = $state(0); let y = $state(0);

@ -1,16 +1,17 @@
import { test } from '../../test'; import { test } from '../../test';
import { log } from './log.js';
export default test({ export default test({
get props() { before_test() {
return { log: [] }; log.length = 0;
}, },
async test({ assert, target, component }) { async test({ assert, target }) {
const [b1, b2] = target.querySelectorAll('button'); const [b1, b2] = target.querySelectorAll('button');
b1.click(); b1.click();
b2.click(); b2.click();
await Promise.resolve(); await Promise.resolve();
assert.deepEqual(component.log, [0, 1]); assert.deepEqual(log, [0, 1]);
} }
}); });

@ -0,0 +1,2 @@
/** @type {any[]} */
export const log = [];

@ -1,5 +1,5 @@
<script> <script>
let { log} = $props(); import { log } from './log.js';
let x = $state(0); let x = $state(0);
let y = $state(0); let y = $state(0);

@ -1,16 +1,17 @@
import { test } from '../../test'; import { test } from '../../test';
import { log } from './log.js';
export default test({ export default test({
get props() { before_test() {
return { log: [] }; log.length = 0;
}, },
async test({ assert, target, component }) { async test({ assert, target }) {
const [b1, b2] = target.querySelectorAll('button'); const [b1, b2] = target.querySelectorAll('button');
b1.click(); b1.click();
b2.click(); b2.click();
await Promise.resolve(); await Promise.resolve();
assert.deepEqual(component.log, ['first0', 'second0', 'first1', 'second1']); assert.deepEqual(log, ['first0', 'second0', 'first1', 'second1']);
} }
}); });

@ -0,0 +1,2 @@
/** @type {any[]} */
export const log = [];

@ -1,5 +1,5 @@
<script> <script>
let { log} = $props(); import { log } from './log.js';
let x = $state(0); let x = $state(0);
let y = $state(0); let y = $state(0);

@ -1,21 +1,23 @@
<script> <script>
let { index, n, order } = $props(); import { log } from './log.js';
let { index, n } = $props();
function logRender () { function logRender () {
order.push(`${index}: render ${n}`); log.push(`${index}: render ${n}`);
return index; return index;
} }
$effect.pre(() => { $effect.pre(() => {
order.push(`${index}: $effect.pre ${n}`); log.push(`${index}: $effect.pre ${n}`);
}); });
$effect.pre(() => { $effect.pre(() => {
order.push(`${index}: $effect.pre (2) ${n}`); log.push(`${index}: $effect.pre (2) ${n}`);
}); });
$effect(() => { $effect(() => {
order.push(`${index}: $effect ${n}`); log.push(`${index}: $effect ${n}`);
}); });
</script> </script>

@ -1,24 +1,17 @@
import { test } from '../../test'; import { test } from '../../test';
import { log } from './log.js';
/**
* @type {any[]}
*/
let order = [];
let n = 0;
export default test({ export default test({
get props() { get props() {
return { return { n: 0 };
order,
n
};
}, },
before_test() { before_test() {
order.length = 0; log.length = 0;
n = 0;
}, },
async test({ assert, compileOptions, component }) {
assert.deepEqual(order, [ async test({ assert, component }) {
assert.deepEqual(log, [
'parent: $effect.pre 0', 'parent: $effect.pre 0',
'parent: $effect.pre (2) 0', 'parent: $effect.pre (2) 0',
'parent: render 0', 'parent: render 0',
@ -37,11 +30,11 @@ export default test({
'parent: $effect 0' 'parent: $effect 0'
]); ]);
order.length = 0; log.length = 0;
component.n += 1; component.n += 1;
assert.deepEqual(order, [ assert.deepEqual(log, [
'parent: $effect.pre 1', 'parent: $effect.pre 1',
'parent: $effect.pre (2) 1', 'parent: $effect.pre (2) 1',
'parent: render 1', 'parent: render 1',

@ -1,30 +1,31 @@
<script> <script>
import Item from './Item.svelte'; import Item from './Item.svelte';
import { log } from './log.js';
let { n = 0, order } = $props(); let { n = 0 } = $props();
function logRender () { function logRender () {
order.push(`parent: render ${n}`); log.push(`parent: render ${n}`);
return 'parent'; return 'parent';
} }
$effect.pre(() => { $effect.pre(() => {
order.push(`parent: $effect.pre ${n}`); log.push(`parent: $effect.pre ${n}`);
}); });
$effect.pre(() => { $effect.pre(() => {
order.push(`parent: $effect.pre (2) ${n}`); log.push(`parent: $effect.pre (2) ${n}`);
}); });
$effect(() => { $effect(() => {
order.push(`parent: $effect ${n}`); log.push(`parent: $effect ${n}`);
}); });
</script> </script>
{logRender()} {logRender()}
<ul> <ul>
{#each [1,2,3] as index} {#each [1,2,3] as index}
<Item {index} {n} {order} /> <Item {index} {n} />
{/each} {/each}
</ul> </ul>

@ -1,17 +1,19 @@
<script> <script>
let { index, n, order } = $props(); import { log } from './log.js';
let { index, n } = $props();
function logRender () { function logRender () {
order.push(`${index}: render ${n}`); log.push(`${index}: render ${n}`);
return index; return index;
} }
$effect.pre(() => { $effect.pre(() => {
order.push(`${index}: $effect.pre ${n}`); log.push(`${index}: $effect.pre ${n}`);
}); });
$effect(() => { $effect(() => {
order.push(`${index}: $effect ${n}`); log.push(`${index}: $effect ${n}`);
}); });
</script> </script>

@ -1,24 +1,17 @@
import { test } from '../../test'; import { test } from '../../test';
import { log } from './log.js';
/**
* @type {any[]}
*/
let order = [];
let n = 0;
export default test({ export default test({
get props() { get props() {
return { return { n: 0 };
order,
n
};
}, },
before_test() { before_test() {
order.length = 0; log.length = 0;
n = 0;
}, },
async test({ assert, compileOptions, component }) {
assert.deepEqual(order, [ async test({ assert, component }) {
assert.deepEqual(log, [
'parent: render 0', 'parent: render 0',
'1: $effect.pre 0', '1: $effect.pre 0',
'1: render 0', '1: render 0',
@ -32,11 +25,11 @@ export default test({
'parent: $effect 0' 'parent: $effect 0'
]); ]);
order.length = 0; log.length = 0;
component.n += 1; component.n += 1;
assert.deepEqual(order, [ assert.deepEqual(log, [
'parent: render 1', 'parent: render 1',
'1: $effect.pre 1', '1: $effect.pre 1',
'1: render 1', '1: render 1',

@ -1,22 +1,23 @@
<script> <script>
import Item from './Item.svelte'; import Item from './Item.svelte';
import { log } from './log.js';
let { n = 0, order } = $props(); let { n = 0 } = $props();
function logRender () { function logRender () {
order.push(`parent: render ${n}`); log.push(`parent: render ${n}`);
return 'parent'; return 'parent';
} }
$effect(() => { $effect(() => {
order.push(`parent: $effect ${n}`); log.push(`parent: $effect ${n}`);
}); });
</script> </script>
{logRender()} {logRender()}
<ul> <ul>
{#each [1,2,3] as index} {#each [1,2,3] as index}
<Item {index} {n} {order} /> <Item {index} {n} />
{/each} {/each}
</ul> </ul>

@ -1,21 +1,23 @@
<script> <script>
let { index, n, order } = $props(); import { log } from './log.js';
let { index, n } = $props();
function logRender () { function logRender () {
order.push(`${index}: render ${n}`); log.push(`${index}: render ${n}`);
return index; return index;
} }
$effect.pre(() => { $effect.pre(() => {
order.push(`${index}: $effect.pre ${n}`); log.push(`${index}: $effect.pre ${n}`);
$effect.pre(() => { $effect.pre(() => {
order.push(`${index}: nested $effect.pre ${n}`); log.push(`${index}: nested $effect.pre ${n}`);
}); });
}); });
$effect(() => { $effect(() => {
order.push(`${index}: $effect ${n}`); log.push(`${index}: $effect ${n}`);
}); });
</script> </script>

@ -1,24 +1,17 @@
import { test } from '../../test'; import { test } from '../../test';
import { log } from './log.js';
/**
* @type {any[]}
*/
let order = [];
let n = 0;
export default test({ export default test({
get props() { get props() {
return { return { n: 0 };
order,
n
};
}, },
before_test() { before_test() {
order.length = 0; log.length = 0;
n = 0;
}, },
async test({ assert, compileOptions, component }) {
assert.deepEqual(order, [ async test({ assert, component }) {
assert.deepEqual(log, [
'parent: $effect.pre 0', 'parent: $effect.pre 0',
'parent: nested $effect.pre 0', 'parent: nested $effect.pre 0',
'parent: render 0', 'parent: render 0',
@ -37,11 +30,11 @@ export default test({
'parent: $effect 0' 'parent: $effect 0'
]); ]);
order.length = 0; log.length = 0;
component.n += 1; component.n += 1;
assert.deepEqual(order, [ assert.deepEqual(log, [
'parent: $effect.pre 1', 'parent: $effect.pre 1',
'parent: nested $effect.pre 1', 'parent: nested $effect.pre 1',
'parent: render 1', 'parent: render 1',

@ -1,30 +1,31 @@
<script> <script>
import Item from './Item.svelte'; import Item from './Item.svelte';
import { log } from './log.js';
let { n = 0, order } = $props(); let { n = 0 } = $props();
function logRender () { function logRender () {
order.push(`parent: render ${n}`); log.push(`parent: render ${n}`);
return 'parent'; return 'parent';
} }
$effect.pre(() => { $effect.pre(() => {
order.push(`parent: $effect.pre ${n}`); log.push(`parent: $effect.pre ${n}`);
$effect.pre(() => { $effect.pre(() => {
order.push(`parent: nested $effect.pre ${n}`); log.push(`parent: nested $effect.pre ${n}`);
}); });
}); });
$effect(() => { $effect(() => {
order.push(`parent: $effect ${n}`); log.push(`parent: $effect ${n}`);
}); });
</script> </script>
{logRender()} {logRender()}
<ul> <ul>
{#each [1,2,3] as index} {#each [1,2,3] as index}
<Item {index} {n} {order} /> <Item {index} {n} />
{/each} {/each}
</ul> </ul>

@ -1,17 +1,19 @@
<script> <script>
let { index, n, order } = $props(); import { log } from './log.js';
let { index, n } = $props();
function logRender () { function logRender () {
order.push(`${index}: render ${n}`); log.push(`${index}: render ${n}`);
return index; return index;
} }
$effect.pre(() => { $effect.pre(() => {
order.push(`${index}: $effect.pre ${n}`); log.push(`${index}: $effect.pre ${n}`);
}); });
$effect(() => { $effect(() => {
order.push(`${index}: $effect ${n}`); log.push(`${index}: $effect ${n}`);
}); });
</script> </script>

@ -1,24 +1,17 @@
import { test } from '../../test'; import { test } from '../../test';
import { log } from './log.js';
/**
* @type {any[]}
*/
let order = [];
let n = 0;
export default test({ export default test({
get props() { get props() {
return { return { n: 0 };
order,
n
};
}, },
before_test() { before_test() {
order.length = 0; log.length = 0;
n = 0;
}, },
async test({ assert, compileOptions, component }) {
assert.deepEqual(order, [ async test({ assert, component }) {
assert.deepEqual(log, [
'parent: $effect.pre 0', 'parent: $effect.pre 0',
'parent: render 0', 'parent: render 0',
'1: $effect.pre 0', '1: $effect.pre 0',
@ -33,11 +26,11 @@ export default test({
'parent: $effect 0' 'parent: $effect 0'
]); ]);
order.length = 0; log.length = 0;
component.n += 1; component.n += 1;
assert.deepEqual(order, [ assert.deepEqual(log, [
'parent: $effect.pre 1', 'parent: $effect.pre 1',
'parent: render 1', 'parent: render 1',
'1: $effect.pre 1', '1: $effect.pre 1',

@ -1,26 +1,27 @@
<script> <script>
import Item from './Item.svelte'; import Item from './Item.svelte';
import { log } from './log.js';
let { n = 0, order } = $props(); let { n = 0 } = $props();
function logRender () { function logRender () {
order.push(`parent: render ${n}`); log.push(`parent: render ${n}`);
return 'parent'; return 'parent';
} }
$effect.pre(() => { $effect.pre(() => {
order.push(`parent: $effect.pre ${n}`); log.push(`parent: $effect.pre ${n}`);
}); });
$effect(() => { $effect(() => {
order.push(`parent: $effect ${n}`); log.push(`parent: $effect ${n}`);
}); });
</script> </script>
{logRender()} {logRender()}
<ul> <ul>
{#each [1,2,3] as index} {#each [1,2,3] as index}
<Item {index} {n} {order} /> <Item {index} {n} />
{/each} {/each}
</ul> </ul>

@ -1,13 +1,14 @@
import { test } from '../../test'; import { test } from '../../test';
import { log } from './log.js';
export default test({ export default test({
get props() { before_test() {
return { log: [] }; log.length = 0;
}, },
async test({ assert, target, component }) { async test({ assert }) {
await Promise.resolve(); await Promise.resolve();
await Promise.resolve(); await Promise.resolve();
assert.deepEqual(component.log, ['a1: ', true, 'b1: ', true]); assert.deepEqual(log, ['a1: ', true, 'b1: ', true]);
} }
}); });

@ -0,0 +1,2 @@
/** @type {any[]} */
export const log = [];

@ -1,12 +1,13 @@
<script> <script>
import { log } from './log.js';
let a1 = $state(); let a1 = $state();
let b1 = $state(); let b1 = $state();
const {log} = $props();
$effect(() => { $effect(() => {
log.push('a1: ', a1); log.push('a1: ', a1);
}); });
$effect(() => { $effect(() => {
log.push('b1: ', b1); log.push('b1: ', b1);
}); });

@ -1,12 +1,13 @@
import { flushSync } from 'svelte'; import { flushSync } from 'svelte';
import { test } from '../../test'; import { test } from '../../test';
import { log } from './log.js';
export default test({ export default test({
get props() { before_test() {
return { log: [] }; log.length = 0;
}, },
async test({ assert, target, component }) { async test({ assert, target }) {
const [b1] = target.querySelectorAll('button'); const [b1] = target.querySelectorAll('button');
flushSync(() => { flushSync(() => {
@ -16,7 +17,7 @@ export default test({
b1.click(); b1.click();
}); });
assert.deepEqual(component.log, [ assert.deepEqual(log, [
'Outer Effect Start (0)', 'Outer Effect Start (0)',
'Outer Effect End (0)', 'Outer Effect End (0)',
'Inner Effect (0)', 'Inner Effect (0)',

@ -0,0 +1,2 @@
/** @type {any[]} */
export const log = [];

@ -1,5 +1,6 @@
<script> <script>
const {log} = $props(); import { log } from './log.js';
let count = $state(0); let count = $state(0);
function increment() { function increment() {

@ -1,16 +1,17 @@
import { test } from '../../test'; import { test } from '../../test';
import { log } from './log.js';
export default test({ export default test({
get props() { before_test() {
return { log: [] }; log.length = 0;
}, },
async test({ assert, target, component }) { async test({ assert, target }) {
const [b1, b2] = target.querySelectorAll('button'); const [b1, b2] = target.querySelectorAll('button');
b1.click(); b1.click();
b2.click(); b2.click();
await Promise.resolve(); await Promise.resolve();
assert.deepEqual(component.log, [0, 1]); assert.deepEqual(log, [0, 1]);
} }
}); });

@ -0,0 +1,2 @@
/** @type {any[]} */
export const log = [];

@ -1,5 +1,5 @@
<script> <script>
let { log} = $props(); import { log } from './log.js';
let x = $state(0); let x = $state(0);
let y = $state(0); let y = $state(0);

Loading…
Cancel
Save