diff --git a/packages/@ember/-internals/glimmer/tests/integration/components/render-component-test.ts b/packages/@ember/-internals/glimmer/tests/integration/components/render-component-test.ts
index 14649f1914d..476688d3c58 100644
--- a/packages/@ember/-internals/glimmer/tests/integration/components/render-component-test.ts
+++ b/packages/@ember/-internals/glimmer/tests/integration/components/render-component-test.ts
@@ -594,6 +594,51 @@ moduleFor(
expect: '
3
3
',
});
}
+
+ async '@test rendering multiple times to adjacent elements'() {
+ let Child = defComponent(`Hi`, { scope: {} });
+ let get = (id: string) => this.element.querySelector(id);
+ let promises: Promise[] = [];
+
+ function render(Comp: GlimmerishComponent, id: string, owner: Owner) {
+ let promise = (async () => {
+ await Promise.resolve();
+ let element = get(`#${id}`);
+
+ renderComponent(Comp, {
+ into: element!,
+ owner,
+ });
+ })();
+
+ promises.push(promise);
+
+ return;
+ }
+ let A = defComponent('a:', { scope: { Child } });
+ let B = defComponent('b:', { scope: { Child } });
+ let Root = defComponent(
+ [
+ `
`,
+ ``,
+ `{{render A 'a' owner}}`,
+ `{{render B 'b' owner}}`,
+ ].join('\n'),
+ { scope: { render, A, B, owner: this.owner } }
+ );
+
+ this.renderComponent(Root, {
+ expect: [`
`, ``, ``, ``].join('\n'),
+ });
+
+ await Promise.all(promises);
+
+ assertHTML([`a:Hi
`, `b:Hi
`, ``, ``].join('\n'));
+
+ run(() => destroy(this));
+
+ assertHTML('');
+ }
}
);