mirror of https://github.com/sveltejs/svelte
parent
9ad416be94
commit
5dd703fe81
@ -0,0 +1,8 @@
|
|||||||
|
<script>
|
||||||
|
export let log;
|
||||||
|
export let b;
|
||||||
|
function innerCall(a) {
|
||||||
|
log(`a: ${a}, b: ${b}`);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<slot name="inner_slot" {innerCall} />
|
@ -0,0 +1,12 @@
|
|||||||
|
<script>
|
||||||
|
import Inner from './Inner.svelte'
|
||||||
|
export let log;
|
||||||
|
export let a;
|
||||||
|
export let b;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Inner {log} {b}>
|
||||||
|
<svelte:fragment let:innerCall slot="inner_slot">
|
||||||
|
<slot outerCall={() => innerCall(a)} />
|
||||||
|
</svelte:fragment>
|
||||||
|
</Inner>
|
@ -0,0 +1,27 @@
|
|||||||
|
let logs;
|
||||||
|
function log(value) {
|
||||||
|
logs.push(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
html: '<button>click me</button>',
|
||||||
|
props: {
|
||||||
|
a: 'a',
|
||||||
|
b: 'b',
|
||||||
|
log
|
||||||
|
},
|
||||||
|
before_test() {
|
||||||
|
logs = [];
|
||||||
|
},
|
||||||
|
async test({ assert, component, target, window }) {
|
||||||
|
const button = target.querySelector('button');
|
||||||
|
await button.dispatchEvent(new window.MouseEvent('click'));
|
||||||
|
|
||||||
|
assert.deepEqual(logs, ['a: a, b: b']);
|
||||||
|
|
||||||
|
component.a = '1';
|
||||||
|
component.b = '2';
|
||||||
|
await button.dispatchEvent(new window.MouseEvent('click'));
|
||||||
|
assert.deepEqual(logs, ['a: a, b: b', 'a: 1, b: 2']);
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,12 @@
|
|||||||
|
<script>
|
||||||
|
import Outer from "./Outer.svelte";
|
||||||
|
export let log = [];
|
||||||
|
export let a;
|
||||||
|
export let b;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Outer let:outerCall {log} {a} {b}>
|
||||||
|
<button on:click={outerCall}>
|
||||||
|
click me
|
||||||
|
</button>
|
||||||
|
</Outer>
|
Loading…
Reference in new issue