diff --git a/test/runtime/samples/await-then-catch-anchor/_config.js b/test/runtime/samples/await-then-catch-anchor/_config.js
new file mode 100644
index 0000000000..697c119ccd
--- /dev/null
+++ b/test/runtime/samples/await-then-catch-anchor/_config.js
@@ -0,0 +1,49 @@
+let fulfil;
+
+let thePromise = new Promise(f => {
+ fulfil = f;
+});
+
+export default {
+ data: {
+ thePromise
+ },
+
+ html: `
+
+ `,
+
+ test(assert, component, target) {
+ fulfil(42);
+
+ return thePromise
+ .then(() => {
+ assert.htmlEqual(target.innerHTML, `
+
+ `);
+
+ let reject;
+
+ thePromise = new Promise((f, r) => {
+ reject = r;
+ });
+
+ component.set({
+ thePromise
+ });
+
+ assert.htmlEqual(target.innerHTML, `
+
+ `);
+
+ reject(new Error('something broke'));
+
+ return thePromise.catch(() => {});
+ })
+ .then(() => {
+ assert.htmlEqual(target.innerHTML, `
+
+ `);
+ });
+ }
+};
diff --git a/test/runtime/samples/await-then-catch-anchor/main.html b/test/runtime/samples/await-then-catch-anchor/main.html
new file mode 100644
index 0000000000..b8e32962fa
--- /dev/null
+++ b/test/runtime/samples/await-then-catch-anchor/main.html
@@ -0,0 +1,9 @@
+
+{{#await thePromise}}
+
loading...
+{{then theValue}}
+
the value is {{theValue}}
+{{catch theError}}
+
oh no! {{theError.message}}
+{{/await}}
+