diff --git a/packages/astro/test/fixtures/lit-element/src/components/my-element.js b/packages/astro/test/fixtures/lit-element/src/components/my-element.js
index b4a780377..d3137c0ba 100644
--- a/packages/astro/test/fixtures/lit-element/src/components/my-element.js
+++ b/packages/astro/test/fixtures/lit-element/src/components/my-element.js
@@ -24,11 +24,13 @@ export class MyElement extends LitElement {
this.reflectedStr = 'default reflected string';
}
render() {
+ let typeofwindow = typeof window.Window;
return html`
Testing...
${this.bool ? 'A' : 'B'}
${this.str}
data: ${this.obj.data}
+ ${typeofwindow}
`;
}
}
diff --git a/packages/astro/test/ssr-lit.test.js b/packages/astro/test/ssr-lit.test.js
new file mode 100644
index 000000000..c989e3559
--- /dev/null
+++ b/packages/astro/test/ssr-lit.test.js
@@ -0,0 +1,34 @@
+import { expect } from 'chai';
+import { load as cheerioLoad } from 'cheerio';
+import { loadFixture } from './test-utils.js';
+import testAdapter from './test-adapter.js';
+
+describe('Lit integration in SSR', () => {
+ /** @type {import('./test-utils').Fixture} */
+ let fixture;
+
+ before(async () => {
+ fixture = await loadFixture({
+ root: './fixtures/lit-element/',
+ experimental: {
+ ssr: true,
+ },
+ adapter: testAdapter(),
+ });
+ await fixture.build();
+ });
+
+ async function fetchHTML(path) {
+ const app = await fixture.loadTestAdapterApp();
+ const request = new Request('http://example.com' + path);
+ const response = await app.render(request);
+ const html = await response.text();
+ return html;
+ }
+
+ it('Is able to load', async () => {
+ const html = await fetchHTML('/');
+ const $ = cheerioLoad(html);
+ expect($('#win').text()).to.equal('function');
+ });
+});