mirror of https://github.com/sveltejs/svelte
				
				
				
			
						commit
						9ad4de761f
					
				@ -0,0 +1,49 @@
 | 
				
			||||
let fulfil;
 | 
				
			||||
 | 
				
			||||
let thePromise = new Promise(f => {
 | 
				
			||||
	fulfil = f;
 | 
				
			||||
});
 | 
				
			||||
 | 
				
			||||
export default {
 | 
				
			||||
	data: {
 | 
				
			||||
		thePromise
 | 
				
			||||
	},
 | 
				
			||||
 | 
				
			||||
	html: `
 | 
				
			||||
		<div><p>loading...</p></div>
 | 
				
			||||
	`,
 | 
				
			||||
 | 
				
			||||
	test(assert, component, target) {
 | 
				
			||||
		fulfil(42);
 | 
				
			||||
 | 
				
			||||
		return thePromise
 | 
				
			||||
			.then(() => {
 | 
				
			||||
				assert.htmlEqual(target.innerHTML, `
 | 
				
			||||
					<div><p>the value is 42</p></div>
 | 
				
			||||
				`);
 | 
				
			||||
 | 
				
			||||
				let reject;
 | 
				
			||||
 | 
				
			||||
				thePromise = new Promise((f, r) => {
 | 
				
			||||
					reject = r;
 | 
				
			||||
				});
 | 
				
			||||
 | 
				
			||||
				component.set({
 | 
				
			||||
					thePromise
 | 
				
			||||
				});
 | 
				
			||||
 | 
				
			||||
				assert.htmlEqual(target.innerHTML, `
 | 
				
			||||
					<div><p>loading...</p></div>
 | 
				
			||||
				`);
 | 
				
			||||
 | 
				
			||||
				reject(new Error('something broke'));
 | 
				
			||||
 | 
				
			||||
				return thePromise.catch(() => {});
 | 
				
			||||
			})
 | 
				
			||||
			.then(() => {
 | 
				
			||||
				assert.htmlEqual(target.innerHTML, `
 | 
				
			||||
					<div><p>oh no! something broke</p></div>
 | 
				
			||||
				`);
 | 
				
			||||
			});
 | 
				
			||||
	}
 | 
				
			||||
};
 | 
				
			||||
@ -0,0 +1,9 @@
 | 
				
			||||
<div>
 | 
				
			||||
{{#await thePromise}}
 | 
				
			||||
<p>loading...</p>
 | 
				
			||||
{{then theValue}}
 | 
				
			||||
<p>the value is {{theValue}}</p>
 | 
				
			||||
{{catch theError}}
 | 
				
			||||
<p>oh no! {{theError.message}}</p>
 | 
				
			||||
{{/await}}
 | 
				
			||||
</div>
 | 
				
			||||
@ -0,0 +1,45 @@
 | 
				
			||||
let fulfil;
 | 
				
			||||
 | 
				
			||||
const thePromise = new Promise(f => {
 | 
				
			||||
	fulfil = f;
 | 
				
			||||
});
 | 
				
			||||
 | 
				
			||||
export default {
 | 
				
			||||
	data: {
 | 
				
			||||
		show: true,
 | 
				
			||||
		thePromise
 | 
				
			||||
	},
 | 
				
			||||
 | 
				
			||||
	html: `
 | 
				
			||||
		<p>loading...</p>
 | 
				
			||||
	`,
 | 
				
			||||
 | 
				
			||||
	test(assert, component, target) {
 | 
				
			||||
		fulfil(42);
 | 
				
			||||
 | 
				
			||||
		return thePromise
 | 
				
			||||
			.then(() => {
 | 
				
			||||
				assert.htmlEqual(target.innerHTML, `
 | 
				
			||||
					<p>the value is 42</p>
 | 
				
			||||
				`);
 | 
				
			||||
 | 
				
			||||
				component.set({
 | 
				
			||||
					show: false
 | 
				
			||||
				});
 | 
				
			||||
 | 
				
			||||
				assert.htmlEqual(target.innerHTML, `
 | 
				
			||||
					<p>Else</p>
 | 
				
			||||
				`);
 | 
				
			||||
 | 
				
			||||
				component.set({
 | 
				
			||||
					show: true
 | 
				
			||||
				});
 | 
				
			||||
 | 
				
			||||
				return thePromise.then(() => {
 | 
				
			||||
					assert.htmlEqual(target.innerHTML, `
 | 
				
			||||
						<p>the value is 42</p>
 | 
				
			||||
					`);
 | 
				
			||||
				});
 | 
				
			||||
			});
 | 
				
			||||
	}
 | 
				
			||||
};
 | 
				
			||||
@ -0,0 +1,11 @@
 | 
				
			||||
{{#if show}}
 | 
				
			||||
{{#await thePromise}}
 | 
				
			||||
<p>loading...</p>
 | 
				
			||||
{{then theValue}}
 | 
				
			||||
<p>the value is {{theValue}}</p>
 | 
				
			||||
{{catch theError}}
 | 
				
			||||
<p>oh no! {{theError.message}}</p>
 | 
				
			||||
{{/await}}
 | 
				
			||||
{{else}}
 | 
				
			||||
<p>Else</p>
 | 
				
			||||
{{/if}}
 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue