mirror of https://github.com/sveltejs/svelte
Fix {#await} block scope when updating (#6219)
parent
6d5a200e04
commit
00e58e7bc8
@ -0,0 +1,51 @@
|
||||
export default {
|
||||
props: {
|
||||
thePromise: new Promise((_) => {})
|
||||
},
|
||||
|
||||
html: `
|
||||
<div>error: undefined</div>
|
||||
`,
|
||||
|
||||
async test({ assert, component, target }) {
|
||||
await (component.thePromise = Promise.resolve('abc'));
|
||||
|
||||
assert.htmlEqual(
|
||||
target.innerHTML,
|
||||
`
|
||||
<div>
|
||||
error: undefined
|
||||
After Resolve: undefined
|
||||
</div>
|
||||
`
|
||||
);
|
||||
|
||||
component.error = 'external error occurred';
|
||||
|
||||
assert.htmlEqual(
|
||||
target.innerHTML,
|
||||
`
|
||||
<div>
|
||||
error: ${component.error}
|
||||
After Resolve: ${component.error}
|
||||
</div>
|
||||
`
|
||||
);
|
||||
|
||||
try {
|
||||
await (component.thePromise = Promise.reject('failure'));
|
||||
} catch (error) {
|
||||
// ignore
|
||||
}
|
||||
|
||||
assert.htmlEqual(
|
||||
target.innerHTML,
|
||||
`
|
||||
<div>
|
||||
error: ${component.error}
|
||||
Rejected: failure
|
||||
</div>
|
||||
`
|
||||
);
|
||||
}
|
||||
};
|
@ -0,0 +1,13 @@
|
||||
<script>
|
||||
export let thePromise;
|
||||
export let error;
|
||||
</script>
|
||||
|
||||
<div>
|
||||
error: {error}
|
||||
{#await thePromise then _}
|
||||
After Resolve: {error}
|
||||
{:catch error}
|
||||
Rejected: {error}
|
||||
{/await}
|
||||
</div>
|
Loading…
Reference in new issue