mirror of https://github.com/sveltejs/svelte
parent
e37cdd18b4
commit
c95ba68e46
@ -0,0 +1,13 @@
|
|||||||
|
<script>
|
||||||
|
import { afterRender } from 'svelte';
|
||||||
|
|
||||||
|
export let value;
|
||||||
|
let mirror;
|
||||||
|
|
||||||
|
afterRender(() => {
|
||||||
|
mirror = value;
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<p>{value}</p>
|
||||||
|
<p>{mirror}</p>
|
@ -1,10 +1,10 @@
|
|||||||
<script>
|
<script>
|
||||||
import Item from './Item.html';
|
import Item from './Item.html';
|
||||||
|
|
||||||
export let items = [ 3, 2, 1 ];
|
export let items = [3, 2, 1];
|
||||||
|
|
||||||
export function update() {
|
export function update() {
|
||||||
items = [ 1, 2, 3, 4, 5 ];
|
items = [1, 2, 3, 4, 5];
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -0,0 +1,21 @@
|
|||||||
|
export default {
|
||||||
|
'skip-ssr': true,
|
||||||
|
|
||||||
|
html: `
|
||||||
|
<span>3</span>
|
||||||
|
<span>2</span>
|
||||||
|
<span>1</span>
|
||||||
|
`,
|
||||||
|
|
||||||
|
async test(assert, component, target) {
|
||||||
|
await component.list.update();
|
||||||
|
|
||||||
|
assert.htmlEqual(target.innerHTML, `
|
||||||
|
<span>1</span>
|
||||||
|
<span>2</span>
|
||||||
|
<span>3</span>
|
||||||
|
<span>4</span>
|
||||||
|
<span>5</span>
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,20 @@
|
|||||||
|
export default {
|
||||||
|
'skip-ssr': true,
|
||||||
|
|
||||||
|
props: {
|
||||||
|
value: 'hello!'
|
||||||
|
},
|
||||||
|
|
||||||
|
html: `
|
||||||
|
<p>hello!</p>
|
||||||
|
<p>hello!</p>
|
||||||
|
`,
|
||||||
|
|
||||||
|
test(assert, component, target) {
|
||||||
|
component.value = 'goodbye!';
|
||||||
|
assert.htmlEqual(target.innerHTML, `
|
||||||
|
<p>goodbye!</p>
|
||||||
|
<p>goodbye!</p>
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
};
|
@ -1,13 +1,13 @@
|
|||||||
<script>
|
<script>
|
||||||
import { beforeRender } from 'svelte';
|
import { beforeRender } from 'svelte';
|
||||||
|
|
||||||
export let foo;
|
export let value;
|
||||||
export let bar;
|
let mirror;
|
||||||
|
|
||||||
beforeRender(() => {
|
beforeRender(() => {
|
||||||
bar = foo.toUpperCase();
|
mirror = value;
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<p>{foo}</p>
|
<p>{value}</p>
|
||||||
<p>{bar}</p>
|
<p>{mirror}</p>
|
@ -1 +0,0 @@
|
|||||||
<input type="number" bind:value={field1}>
|
|
@ -1,34 +0,0 @@
|
|||||||
export default {
|
|
||||||
html: `
|
|
||||||
<input type=number>
|
|
||||||
<p>field1: 1</p>
|
|
||||||
<p>field2: 2</p>
|
|
||||||
`,
|
|
||||||
|
|
||||||
ssrHtml: `
|
|
||||||
<input type=number value=1>
|
|
||||||
<p>field1: 1</p>
|
|
||||||
<p>field2: 2</p>
|
|
||||||
`,
|
|
||||||
|
|
||||||
test(assert, component, target, window) {
|
|
||||||
let triggered = false;
|
|
||||||
component.nested.on('state', ({ changed }) => {
|
|
||||||
if (changed.field2) triggered = true;
|
|
||||||
});
|
|
||||||
|
|
||||||
const input = target.querySelector('input');
|
|
||||||
const event = new window.Event('input');
|
|
||||||
|
|
||||||
input.value = 3;
|
|
||||||
input.dispatchEvent(event); // will throw error if observer fires incorrectly
|
|
||||||
|
|
||||||
assert.ok(!triggered);
|
|
||||||
|
|
||||||
assert.htmlEqual(target.innerHTML, `
|
|
||||||
<input type='number'>
|
|
||||||
<p>field1: 3</p>
|
|
||||||
<p>field2: 2</p>
|
|
||||||
`);
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,14 +0,0 @@
|
|||||||
<script>
|
|
||||||
export let nested;
|
|
||||||
|
|
||||||
import Nested from './Nested.html';
|
|
||||||
|
|
||||||
export let myObject = {
|
|
||||||
field1: 1,
|
|
||||||
field2: 2
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<Nested ref:nested bind:field1={myObject.field1} bind:field2={myObject.field2} />
|
|
||||||
<p>field1: {myObject.field1}</p>
|
|
||||||
<p>field2: {myObject.field2}</p>
|
|
@ -1,29 +0,0 @@
|
|||||||
export default {
|
|
||||||
props: {
|
|
||||||
thing: { a: 1 }
|
|
||||||
},
|
|
||||||
|
|
||||||
test(assert, component) {
|
|
||||||
const thing = component.thing;
|
|
||||||
|
|
||||||
component.$on('state', ({ changed, current }) => {
|
|
||||||
if (changed.thing) {
|
|
||||||
const { thing } = current;
|
|
||||||
thing.b = thing.a * 2;
|
|
||||||
component.thing = thing; // triggers infinite loop, unless event handler breaks it
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
assert.deepEqual(thing, {
|
|
||||||
a: 1
|
|
||||||
});
|
|
||||||
|
|
||||||
thing.a = 3;
|
|
||||||
component.thing = thing;
|
|
||||||
|
|
||||||
assert.deepEqual(thing, {
|
|
||||||
a: 3,
|
|
||||||
b: 6
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
@ -1 +0,0 @@
|
|||||||
<div></div>
|
|
@ -1,3 +0,0 @@
|
|||||||
export default {
|
|
||||||
skip: +(/^v(\d)/.exec(process.version)[1]) < 8
|
|
||||||
};
|
|
@ -1,3 +0,0 @@
|
|||||||
export default {
|
|
||||||
skip: +(/^v(\d)/.exec(process.version)[1]) < 8
|
|
||||||
};
|
|
@ -1,5 +0,0 @@
|
|||||||
<script>
|
|
||||||
import { onMount } from 'svelte';
|
|
||||||
|
|
||||||
onMount(async () => await 123);
|
|
||||||
</script>
|
|
@ -1,3 +0,0 @@
|
|||||||
export default {
|
|
||||||
skip: +(/^v(\d)/.exec(process.version)[1]) < 8
|
|
||||||
};
|
|
@ -1,7 +0,0 @@
|
|||||||
<script>
|
|
||||||
import { onMount } from 'svelte';
|
|
||||||
|
|
||||||
onMount(async () => {
|
|
||||||
await 123
|
|
||||||
});
|
|
||||||
</script>
|
|
@ -0,0 +1,3 @@
|
|||||||
|
export default {
|
||||||
|
skip: +(/^v(\d+)/.exec(process.version)[1]) < 8
|
||||||
|
};
|
@ -1,15 +0,0 @@
|
|||||||
export default {
|
|
||||||
'skip-ssr': true,
|
|
||||||
|
|
||||||
html: `
|
|
||||||
<span>3</span><span>2</span><span>1</span>
|
|
||||||
`,
|
|
||||||
|
|
||||||
test(assert, component, target) {
|
|
||||||
component.list.update();
|
|
||||||
|
|
||||||
assert.htmlEqual(target.innerHTML, `
|
|
||||||
<span>1</span><span>2</span><span>3</span><span>4</span><span>5</span>
|
|
||||||
`);
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,8 +0,0 @@
|
|||||||
export default {
|
|
||||||
'skip-ssr': true,
|
|
||||||
|
|
||||||
test(assert, component, target) {
|
|
||||||
assert.ok(component.onstateRanBeforeOncreate);
|
|
||||||
assert.ok(!component.onupdateRanBeforeOncreate);
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,21 +0,0 @@
|
|||||||
<script>
|
|
||||||
import { onMount, beforeRender, afterRender } from 'svelte';
|
|
||||||
|
|
||||||
export let onstateRanBeforeOncreate;
|
|
||||||
export let onupdateRanBeforeOncreate;
|
|
||||||
let onpropsRan;
|
|
||||||
let onupdateRan;
|
|
||||||
|
|
||||||
beforeRender(() => {
|
|
||||||
onstateRan = true;
|
|
||||||
});
|
|
||||||
|
|
||||||
afterRender(() => {
|
|
||||||
onupdateRan = true;
|
|
||||||
});
|
|
||||||
|
|
||||||
onMount(() => {
|
|
||||||
onpropsRanBeforeOncreate = onpropsRan;
|
|
||||||
onupdateRanBeforeOncreate = onupdateRan;
|
|
||||||
});
|
|
||||||
</script>
|
|
Loading…
Reference in new issue