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>
|
@ -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>
|
||||
import { beforeRender } from 'svelte';
|
||||
|
||||
export let foo;
|
||||
export let bar;
|
||||
export let value;
|
||||
let mirror;
|
||||
|
||||
beforeRender(() => {
|
||||
bar = foo.toUpperCase();
|
||||
mirror = value;
|
||||
});
|
||||
</script>
|
||||
|
||||
<p>{foo}</p>
|
||||
<p>{bar}</p>
|
||||
<p>{value}</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