mirror of https://github.com/sveltejs/svelte
				
				
				
			
							parent
							
								
									2fe198f1ad
								
							
						
					
					
						commit
						1a72d285f6
					
				@ -0,0 +1,34 @@
 | 
				
			||||
import { tick } from 'svelte';
 | 
				
			||||
import { deferred } from '../../../../src/internal/shared/utils.js';
 | 
				
			||||
import { test } from '../../test';
 | 
				
			||||
 | 
				
			||||
/** @type {ReturnType<typeof deferred>} */
 | 
				
			||||
let d;
 | 
				
			||||
 | 
				
			||||
export default test({
 | 
				
			||||
	html: `<p>pending</p>`,
 | 
				
			||||
 | 
				
			||||
	get props() {
 | 
				
			||||
		d = deferred();
 | 
				
			||||
 | 
				
			||||
		return {
 | 
				
			||||
			promise: d.promise
 | 
				
			||||
		};
 | 
				
			||||
	},
 | 
				
			||||
 | 
				
			||||
	async test({ assert, target, component }) {
 | 
				
			||||
		d.resolve('cool');
 | 
				
			||||
		await Promise.resolve();
 | 
				
			||||
		await tick();
 | 
				
			||||
		assert.htmlEqual(target.innerHTML, '<p class="cool">hello</p>');
 | 
				
			||||
 | 
				
			||||
		d = deferred();
 | 
				
			||||
		component.promise = d.promise;
 | 
				
			||||
		assert.htmlEqual(target.innerHTML, '<p>pending</p>');
 | 
				
			||||
 | 
				
			||||
		d.resolve('neat');
 | 
				
			||||
		await Promise.resolve();
 | 
				
			||||
		await tick();
 | 
				
			||||
		assert.htmlEqual(target.innerHTML, '<p class="neat">hello</p>');
 | 
				
			||||
	}
 | 
				
			||||
});
 | 
				
			||||
@ -0,0 +1,11 @@
 | 
				
			||||
<script>
 | 
				
			||||
	let { promise } = $props();
 | 
				
			||||
</script>
 | 
				
			||||
 | 
				
			||||
<svelte:boundary>
 | 
				
			||||
	<p class={await promise}>hello</p>
 | 
				
			||||
 | 
				
			||||
	{#snippet pending()}
 | 
				
			||||
		<p>pending</p>
 | 
				
			||||
	{/snippet}
 | 
				
			||||
</svelte:boundary>
 | 
				
			||||
@ -0,0 +1,7 @@
 | 
				
			||||
<script>
 | 
				
			||||
	let { promise } = $props();
 | 
				
			||||
 | 
				
			||||
	let value = await promise;
 | 
				
			||||
</script>
 | 
				
			||||
 | 
				
			||||
<p>{value}</p>
 | 
				
			||||
@ -0,0 +1,25 @@
 | 
				
			||||
import { tick } from 'svelte';
 | 
				
			||||
import { deferred } from '../../../../src/internal/shared/utils.js';
 | 
				
			||||
import { test } from '../../test';
 | 
				
			||||
 | 
				
			||||
/** @type {ReturnType<typeof deferred>} */
 | 
				
			||||
let d;
 | 
				
			||||
 | 
				
			||||
export default test({
 | 
				
			||||
	html: `<p>pending</p>`,
 | 
				
			||||
 | 
				
			||||
	get props() {
 | 
				
			||||
		d = deferred();
 | 
				
			||||
 | 
				
			||||
		return {
 | 
				
			||||
			promise: d.promise
 | 
				
			||||
		};
 | 
				
			||||
	},
 | 
				
			||||
 | 
				
			||||
	async test({ assert, target }) {
 | 
				
			||||
		d.resolve('hello');
 | 
				
			||||
		await Promise.resolve();
 | 
				
			||||
		await tick();
 | 
				
			||||
		assert.htmlEqual(target.innerHTML, '<p>hello</p>');
 | 
				
			||||
	}
 | 
				
			||||
});
 | 
				
			||||
@ -0,0 +1,13 @@
 | 
				
			||||
<script>
 | 
				
			||||
	import Child from './Child.svelte';
 | 
				
			||||
 | 
				
			||||
	let { promise } = $props();
 | 
				
			||||
</script>
 | 
				
			||||
 | 
				
			||||
<svelte:boundary>
 | 
				
			||||
	<Child {promise} />
 | 
				
			||||
 | 
				
			||||
	{#snippet pending()}
 | 
				
			||||
		<p>pending</p>
 | 
				
			||||
	{/snippet}
 | 
				
			||||
</svelte:boundary>
 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue