mirror of https://github.com/sveltejs/svelte
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.0 KiB
64 lines
1.0 KiB
5 years ago
|
export default {
|
||
|
props: {
|
||
|
thePromise: new Promise(resolve => {})
|
||
|
},
|
||
|
|
||
|
html: `
|
||
|
loading...
|
||
|
`,
|
||
|
|
||
|
async test({ assert, component, target }) {
|
||
|
await (component.thePromise = Promise.resolve({ error: "error message" }));
|
||
|
|
||
|
assert.htmlEqual(
|
||
|
target.innerHTML,
|
||
|
`
|
||
|
<p>error: error message</p>
|
||
|
<p>result: undefined</p>
|
||
|
`
|
||
|
);
|
||
|
|
||
|
await (component.thePromise = Promise.resolve({ result: "42" }));
|
||
|
|
||
|
assert.htmlEqual(
|
||
|
target.innerHTML,
|
||
|
`
|
||
|
<p>error: undefined</p>
|
||
|
<p>result: 42</p>
|
||
|
`
|
||
|
);
|
||
|
|
||
|
try {
|
||
|
await (component.thePromise = Promise.reject({
|
||
|
error: { message: "oops", code: "123" }
|
||
|
}));
|
||
|
} catch (e) {
|
||
|
// do nothing
|
||
|
}
|
||
|
|
||
|
assert.htmlEqual(
|
||
|
target.innerHTML,
|
||
|
`
|
||
|
<p>message: oops</p>
|
||
|
<p>code: 123</p>
|
||
|
`
|
||
|
);
|
||
|
|
||
|
try {
|
||
|
await (component.thePromise = Promise.reject({
|
||
|
error: { message: "timeout", code: "456" }
|
||
|
}));
|
||
|
} catch (e) {
|
||
|
// do nothing
|
||
|
}
|
||
|
|
||
|
assert.htmlEqual(
|
||
|
target.innerHTML,
|
||
|
`
|
||
|
<p>message: timeout</p>
|
||
|
<p>code: 456</p>
|
||
|
`
|
||
|
);
|
||
|
}
|
||
|
};
|