diff --git a/test/runtime/samples/await-then-destruct-computed-props/_config.js b/test/runtime/samples/await-then-destruct-computed-props/_config.js new file mode 100644 index 0000000000..91ba4882b9 --- /dev/null +++ b/test/runtime/samples/await-then-destruct-computed-props/_config.js @@ -0,0 +1,32 @@ +export default { + async test({ assert, component, target }) { + await Promise.resolve(); + + assert.htmlEqual( + target.innerHTML, + ` +
propA: 3
+propB: 7
+num: 3
+rest: {"prop3":{"prop9":9,"prop10":10}}
+propZ: 5
+propY: 6
+rest: {"propX":7,"propW":8}
+ ` + ); + + await (component.object = Promise.resolve({ prop1: 'one', prop2: 'two', prop3: { prop7: 'seven' }, prop4: { prop10: 'ten' }})); + assert.htmlEqual( + target.innerHTML, + ` +propA: seven
+propB: ten
+num: 5
+rest: {"prop1":"one","prop2":"two"}
+propZ: 5
+propY: 6
+rest: {"propX":7,"propW":8}
+ ` + ); + } +}; diff --git a/test/runtime/samples/await-then-destruct-computed-props/main.svelte b/test/runtime/samples/await-then-destruct-computed-props/main.svelte new file mode 100644 index 0000000000..a20edb44d3 --- /dev/null +++ b/test/runtime/samples/await-then-destruct-computed-props/main.svelte @@ -0,0 +1,23 @@ + + +{#await object then { [`prop${num++}`]: { [`prop${num + 3}`]: propA }, [`prop${num++}`]: { [`prop${num + 5}`]: propB }, ...rest }} +propA: {propA}
+propB: {propB}
+num: {num}
+rest: {JSON.stringify(rest)}
+{/await} + +{#await objectReject then value} + resolved +{:catch { [`${prop}Z`]: propZ, [`${prop}Y`]: propY, ...rest }} +propZ: {propZ}
+propY: {propY}
+rest: {JSON.stringify(rest)}
+{/await} +