From da70fb2e2b933c47a9c3721b3249163a563e7ed0 Mon Sep 17 00:00:00 2001 From: Vladislav Lipatov Date: Sun, 6 Oct 2024 15:12:58 +0700 Subject: [PATCH] Added tests for solid --- .../solid-component/src/components/RenderCount.jsx | 9 +++++++++ .../test/fixtures/solid-component/src/pages/index.astro | 2 ++ packages/astro/test/solid-component.test.js | 7 +++++++ 3 files changed, 18 insertions(+) create mode 100644 packages/astro/test/fixtures/solid-component/src/components/RenderCount.jsx diff --git a/packages/astro/test/fixtures/solid-component/src/components/RenderCount.jsx b/packages/astro/test/fixtures/solid-component/src/components/RenderCount.jsx new file mode 100644 index 000000000000..76a9fac709b1 --- /dev/null +++ b/packages/astro/test/fixtures/solid-component/src/components/RenderCount.jsx @@ -0,0 +1,9 @@ +let count = 1; + +export default function RenderCount() { + return ( + <> +
{count++}
+ + ); +} diff --git a/packages/astro/test/fixtures/solid-component/src/pages/index.astro b/packages/astro/test/fixtures/solid-component/src/pages/index.astro index e4931ded1e61..bab2ce2fb773 100644 --- a/packages/astro/test/fixtures/solid-component/src/pages/index.astro +++ b/packages/astro/test/fixtures/solid-component/src/pages/index.astro @@ -4,6 +4,7 @@ import { Counter as DepCounter } from '@test/solid-jsx-component'; import Hello from '../components/Hello.jsx'; import ProxyComponent from '../components/ProxyComponent.jsx'; import WithNewlines from '../components/WithNewlines.jsx'; +import RenderCount from '../components/RenderCount.jsx'; --- Solid @@ -14,6 +15,7 @@ import WithNewlines from '../components/WithNewlines.jsx'; + diff --git a/packages/astro/test/solid-component.test.js b/packages/astro/test/solid-component.test.js index 857993038506..8822e6370942 100644 --- a/packages/astro/test/solid-component.test.js +++ b/packages/astro/test/solid-component.test.js @@ -23,6 +23,13 @@ describe.skip('Solid component build', { todo: 'Check why an error is thrown.' } assert.equal($('#proxy-component').text(), 'Hello world'); }); + it('Renders the component only once on the server', async () => { + const html = await fixture.readFile('/index.html'); + const $ = cheerio.load(html); + + assert.equal($('#render-count').text(), '1'); + }); + // ssr-client-none.astro it('Supports server only components', async () => { const html = await fixture.readFile('ssr-client-none/index.html');