diff options
-rw-r--r-- | packages/astro/e2e/fixtures/multiple-frameworks/src/components/SvelteCounter.svelte | 1 | ||||
-rw-r--r-- | packages/astro/e2e/multiple-frameworks.test.js | 75 |
2 files changed, 54 insertions, 22 deletions
diff --git a/packages/astro/e2e/fixtures/multiple-frameworks/src/components/SvelteCounter.svelte b/packages/astro/e2e/fixtures/multiple-frameworks/src/components/SvelteCounter.svelte index ab13b9c71..d6870af3c 100644 --- a/packages/astro/e2e/fixtures/multiple-frameworks/src/components/SvelteCounter.svelte +++ b/packages/astro/e2e/fixtures/multiple-frameworks/src/components/SvelteCounter.svelte @@ -1,7 +1,6 @@ <script> export let id; - let children; let count = 0; function add() { diff --git a/packages/astro/e2e/multiple-frameworks.test.js b/packages/astro/e2e/multiple-frameworks.test.js index dce4502ab..ad9520130 100644 --- a/packages/astro/e2e/multiple-frameworks.test.js +++ b/packages/astro/e2e/multiple-frameworks.test.js @@ -1,5 +1,4 @@ import { test as base, expect } from '@playwright/test'; -import os from 'os'; import { loadFixture } from './test-utils.js'; const test = base.extend({ @@ -111,49 +110,83 @@ test.describe('Multiple frameworks', () => { test('Page template', async ({ astro, page }) => { await page.goto('/'); - // 1: updating the page template - const preactSlot = page.locator('#preact-counter + .counter-message'); - await expect(preactSlot, 'initial slot content').toHaveText('Hello Preact!'); + const slot = page.locator('#preact-counter + .counter-message'); + await expect(slot, 'initial slot content').toHaveText('Hello Preact!'); await astro.editFile('./src/pages/index.astro', (content) => content.replace('Hello Preact!', 'Hello Preact, updated!') ); - await expect(preactSlot, 'slot content updated').toHaveText('Hello Preact, updated!'); + await expect(slot, 'slot content updated').toHaveText('Hello Preact, updated!'); }); test('React component', async ({ astro, page }) => { await page.goto('/'); - // Edit the react component + const count = await page.locator('#react-counter pre'); + await expect(count, 'initial count updated to 0').toHaveText('0'); + await astro.editFile('./src/components/ReactCounter.jsx', (content) => content.replace('useState(0)', 'useState(5)') ); - const reactCount = await page.locator('#react-counter pre'); - await expect(reactCount, 'initial count updated to 5').toHaveText('5'); + await expect(count, 'initial count updated to 5').toHaveText('5'); }); - // TODO: HMR works on Ubuntu, why is this specific test failing in CI? - const it = os.platform() === 'linux' ? test.skip : test; - it('Svelte component', async ({ astro, page }) => { + test('Preact component', async ({ astro, page }) => { await page.goto('/'); - // Edit the svelte component's style - const svelteCounter = page.locator('#svelte-counter'); - await expect(svelteCounter, 'initial background is white').toHaveCSS( - 'background-color', - 'rgb(255, 255, 255)' + const count = await page.locator('#preact-counter pre'); + await expect(count, 'initial count updated to 0').toHaveText('0'); + + await astro.editFile('./src/components/PreactCounter.tsx', (content) => + content.replace('useState(0)', 'useState(5)') ); - await astro.editFile('./src/components/SvelteCounter.svelte', (content) => - content.replace('background: white', 'background: rgb(230, 230, 230)') + await expect(count, 'initial count updated to 5').toHaveText('5'); + }); + + test('Solid component', async ({ astro, page }) => { + await page.goto('/'); + + const count = await page.locator('#solid-counter pre'); + await expect(count, 'initial count updated to 0').toHaveText('0'); + + await astro.editFile('./src/components/SolidCounter.tsx', (content) => + content.replace('createSignal(0)', 'createSignal(5)') ); - await expect(svelteCounter, 'background color updated').toHaveCSS( - 'background-color', - 'rgb(230, 230, 230)' + await expect(count, 'initial count updated to 5').toHaveText('5'); + }); + + // TODO: re-enable this test when #3559 is fixed + // https://github.com/withastro/astro/issues/3559 + test.skip('Vue component', async ({ astro, page }) => { + await page.goto('/'); + + const count = await page.locator('#vue-counter pre'); + await expect(count, 'initial count updated to 0').toHaveText('0'); + + await astro.editFile('./src/components/VueCounter.vue', (content) => + content.replace('ref(0)', 'ref(5)') ); + + await expect(count, 'initial count updated to 5').toHaveText('5'); + }); + + // TODO: track down a reliability issue in this test + // It seems to lost connection to the vite server in CI + test.skip('Svelte component', async ({ astro, page }) => { + await page.goto('/'); + + const count = page.locator('#svelte-counter pre'); + await expect(count, 'initial count is 0').toHaveText('0'); + + await astro.editFile('./src/components/SvelteCounter.svelte', (content) => + content.replace('let count = 0;', 'let count = 5;') + ); + + await expect(count, 'initial count updated to 5').toHaveText('5'); }); }); }); |