diff --git a/packages/svelte/tests/runtime-runes/samples/async-await/_config.js b/packages/svelte/tests/runtime-runes/samples/async-await/_config.js
new file mode 100644
index 0000000000..dda6a7a895
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-await/_config.js
@@ -0,0 +1,43 @@
+import { tick } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target }) {
+ const [reset, one, two, reject] = target.querySelectorAll('button');
+
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ ' waiting'
+ );
+
+ one.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ ' one_res'
+ );
+
+ reset.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ ' waiting'
+ );
+
+ two.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ ' two_res'
+ );
+
+ reset.click();
+ reject.click();
+ await tick();
+ assert.htmlEqual(
+ target.innerHTML,
+ ' reject_catch'
+ );
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/async-await/main.svelte b/packages/svelte/tests/runtime-runes/samples/async-await/main.svelte
new file mode 100644
index 0000000000..8673e45414
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/async-await/main.svelte
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+ {#await await deferred.promise + "_res"}
+ waiting
+ {:then res}
+ {res}
+ {:catch err}
+ {err}_catch
+ {/await}
+
+ {#snippet pending()}
+ pending
+ {/snippet}
+