mirror of https://github.com/sveltejs/svelte
				
				
				
			
							parent
							
								
									c34e44f781
								
							
						
					
					
						commit
						ed348c6cab
					
				@ -0,0 +1,37 @@
 | 
				
			||||
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(true);
 | 
				
			||||
		await Promise.resolve();
 | 
				
			||||
		await Promise.resolve();
 | 
				
			||||
		await Promise.resolve();
 | 
				
			||||
		await tick();
 | 
				
			||||
		assert.htmlEqual(target.innerHTML, '<h1>yes</h1>');
 | 
				
			||||
 | 
				
			||||
		d = deferred();
 | 
				
			||||
		component.promise = d.promise;
 | 
				
			||||
		await tick();
 | 
				
			||||
		assert.htmlEqual(target.innerHTML, '<p>pending</p>');
 | 
				
			||||
 | 
				
			||||
		d.resolve(false);
 | 
				
			||||
		await Promise.resolve();
 | 
				
			||||
		await tick();
 | 
				
			||||
		assert.htmlEqual(target.innerHTML, '<h1>no</h1>');
 | 
				
			||||
	}
 | 
				
			||||
});
 | 
				
			||||
@ -0,0 +1,15 @@
 | 
				
			||||
<script>
 | 
				
			||||
	let { promise } = $props();
 | 
				
			||||
</script>
 | 
				
			||||
 | 
				
			||||
<svelte:boundary>
 | 
				
			||||
	{#if await promise}
 | 
				
			||||
		<h1>yes</h1>
 | 
				
			||||
	{:else}
 | 
				
			||||
		<h1>no</h1>
 | 
				
			||||
	{/if}
 | 
				
			||||
 | 
				
			||||
	{#snippet pending()}
 | 
				
			||||
		<p>pending</p>
 | 
				
			||||
	{/snippet}
 | 
				
			||||
</svelte:boundary>
 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue