Skip to content

Commit

Permalink
Add test to verify Lit works in SSR (withastro#3158)
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewp authored Apr 20, 2022
1 parent 28947e3 commit 692e5f0
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
2 changes: 2 additions & 0 deletions test/fixtures/lit-element/src/components/my-element.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,13 @@ export class MyElement extends LitElement {
this.reflectedStr = 'default reflected string';
}
render() {
let typeofwindow = typeof window.Window;
return html`
<div>Testing...</div>
<div id="bool">${this.bool ? 'A' : 'B'}</div>
<div id="str">${this.str}</div>
<div id="data">data: ${this.obj.data}</div>
<div id="win">${typeofwindow}</div>
`;
}
}
Expand Down
34 changes: 34 additions & 0 deletions test/ssr-lit.test.js
Original file line number Diff line number Diff line change
@@ -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');
});
});

0 comments on commit 692e5f0

Please sign in to comment.