mirror of https://github.com/sveltejs/svelte
				
				
				
			
							parent
							
								
									ed348c6cab
								
							
						
					
					
						commit
						255eec7fff
					
				@ -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(['a', 'b', 'c']);
 | 
				
			||||||
 | 
							await Promise.resolve();
 | 
				
			||||||
 | 
							await Promise.resolve();
 | 
				
			||||||
 | 
							await Promise.resolve();
 | 
				
			||||||
 | 
							await tick();
 | 
				
			||||||
 | 
							assert.htmlEqual(target.innerHTML, '<p>a</p><p>b</p><p>c</p>');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							d = deferred();
 | 
				
			||||||
 | 
							component.promise = d.promise;
 | 
				
			||||||
 | 
							await tick();
 | 
				
			||||||
 | 
							assert.htmlEqual(target.innerHTML, '<p>pending</p>');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							d.resolve(['d', 'e', 'f']);
 | 
				
			||||||
 | 
							await Promise.resolve();
 | 
				
			||||||
 | 
							await tick();
 | 
				
			||||||
 | 
							assert.htmlEqual(target.innerHTML, '<p>d</p><p>e</p><p>f</p>');
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					<script>
 | 
				
			||||||
 | 
						let { promise } = $props();
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<svelte:boundary>
 | 
				
			||||||
 | 
						{#each await promise as item}
 | 
				
			||||||
 | 
							<p>{item}</p>
 | 
				
			||||||
 | 
						{/each}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{#snippet pending()}
 | 
				
			||||||
 | 
							<p>pending</p>
 | 
				
			||||||
 | 
						{/snippet}
 | 
				
			||||||
 | 
					</svelte:boundary>
 | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue