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