From c4e1478db16ee0e4a45bbea16c611cd47e791d64 Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Fri, 30 Oct 2026 00:21:05 -0700 Subject: [PATCH] Test renderWebChat() into a shadow root nested in another shadow root on React 16 --- ...t.interact.renderIntoNestedShadowRoot.html | 111 ++++++++++++++++++ ...renderIntoNestedShadowRoot.html.snap-1.png | Bin 0 -> 11297 bytes ...renderIntoNestedShadowRoot.html.snap-2.png | Bin 0 -> 12028 bytes packages/bundle/src/renderWebChat.spec.tsx | 35 ++++++ 4 files changed, 146 insertions(+) create mode 100644 __tests__/html2/customElement/shadowRoot.interact.renderIntoNestedShadowRoot.html create mode 100644 __tests__/html2/customElement/shadowRoot.interact.renderIntoNestedShadowRoot.html.snap-1.png create mode 100644 __tests__/html2/customElement/shadowRoot.interact.renderIntoNestedShadowRoot.html.snap-2.png diff --git a/__tests__/html2/customElement/shadowRoot.interact.renderIntoNestedShadowRoot.html b/__tests__/html2/customElement/shadowRoot.interact.renderIntoNestedShadowRoot.html new file mode 100644 index 0000000000..560e32604e --- /dev/null +++ b/__tests__/html2/customElement/shadowRoot.interact.renderIntoNestedShadowRoot.html @@ -0,0 +1,111 @@ + + + + + + + + + + +
+ + + + + + diff --git a/__tests__/html2/customElement/shadowRoot.interact.renderIntoNestedShadowRoot.html.snap-1.png b/__tests__/html2/customElement/shadowRoot.interact.renderIntoNestedShadowRoot.html.snap-1.png new file mode 100644 index 0000000000000000000000000000000000000000..cc78eb605b8c665e9f10dd67c82f655cd173bdf0 GIT binary patch literal 11297 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 literal 0 HcmV?d00001 diff --git a/__tests__/html2/customElement/shadowRoot.interact.renderIntoNestedShadowRoot.html.snap-2.png b/__tests__/html2/customElement/shadowRoot.interact.renderIntoNestedShadowRoot.html.snap-2.png new file mode 100644 index 0000000000000000000000000000000000000000..fc74059d731ac6fe78305bfd774e72cc1e3a9a20 GIT binary patch literal 12028 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 literal 0 HcmV?d00001 diff --git a/packages/bundle/src/renderWebChat.spec.tsx b/packages/bundle/src/renderWebChat.spec.tsx index cac3e5975b..4177cbdc7d 100644 --- a/packages/bundle/src/renderWebChat.spec.tsx +++ b/packages/bundle/src/renderWebChat.spec.tsx @@ -114,6 +114,41 @@ describe('Element in a shadow root', () => { }); }); +describe('Shadow root nested in another shadow root', () => { + let innerShadowRoot: ShadowRoot; + + beforeEach(() => { + const innerHost = document.createElement('div'); + const outerHost = document.createElement('div'); + + outerHost.attachShadow({ mode: 'open' }).append(innerHost); + document.body.append(outerHost); + + innerShadowRoot = innerHost.attachShadow({ mode: 'open' }); + }); + + afterEach(() => document.body.replaceChildren()); + + test('passed as the inner shadow root itself on React 16 should be rendered by ReactDOM.render()', () => { + // `ShadowRoot.getRootNode()` returns the shadow root itself, however deep its host is nested. + expect(innerShadowRoot.getRootNode()).toBe(innerShadowRoot); + + renderWebChat(ReactWebChat, {}, innerShadowRoot); + + expect(render).toHaveBeenCalledTimes(1); + expect(render.mock.calls[0][1]).toBe(innerShadowRoot); + }); + + test('with an element inside the inner shadow root on React 16 should throw', () => { + const element = document.createElement('div'); + + innerShadowRoot.append(element); + + expect(() => renderWebChat(ReactWebChat, {}, element)).toThrow('on React 16 does not support'); + expect(render).not.toHaveBeenCalled(); + }); +}); + test('Element outside of a shadow root on React 16 should be rendered by ReactDOM.render()', () => { const element = document.createElement('div');