summaryrefslogtreecommitdiff
path: root/packages/integrations/lit
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/lit')
-rw-r--r--packages/integrations/lit/server.js7
-rw-r--r--packages/integrations/lit/test/server.test.js24
2 files changed, 30 insertions, 1 deletions
diff --git a/packages/integrations/lit/server.js b/packages/integrations/lit/server.js
index 762c77844..d4ca4e08f 100644
--- a/packages/integrations/lit/server.js
+++ b/packages/integrations/lit/server.js
@@ -59,7 +59,12 @@ function* render(Component, attrs, slots) {
yield `<${tagName}${shouldDeferHydration ? ' defer-hydration' : ''}`;
yield* instance.renderAttributes();
yield `>`;
- const shadowContents = instance.renderShadow({});
+ const shadowContents = instance.renderShadow({
+ elementRenderers: [LitElementRenderer],
+ customElementInstanceStack: [instance],
+ customElementHostStack: [],
+ deferHydration: false,
+ });
if (shadowContents !== undefined) {
const { mode = 'open', delegatesFocus } = instance.shadowRootOptions ?? {};
// `delegatesFocus` is intentionally allowed to coerce to boolean to
diff --git a/packages/integrations/lit/test/server.test.js b/packages/integrations/lit/test/server.test.js
index 51e083241..557832db5 100644
--- a/packages/integrations/lit/test/server.test.js
+++ b/packages/integrations/lit/test/server.test.js
@@ -90,6 +90,30 @@ describe('renderToStaticMarkup', () => {
expect($(`${tagName} template`).text()).to.contain(`Hello ${prop1}`);
});
+ it('should render nested components', async () => {
+ const tagName = 'parent-component';
+ const childTagName = 'child-component';
+ customElements.define(
+ childTagName,
+ class extends LitElement {
+ render() {
+ return html`<p>child</p>`;
+ }
+ }
+ );
+ customElements.define(
+ tagName,
+ class extends LitElement {
+ render() {
+ return html`<child-component></child-component>`;
+ }
+ }
+ );
+ const render = await renderToStaticMarkup(tagName);
+ const $ = cheerio.load(render.html);
+ expect($(`${tagName} template`).text()).to.contain('child');
+ });
+
it('should render DSD attributes based on shadowRootOptions', async () => {
const tagName = 'shadow-root-options-component';
customElements.define(