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