From 1a47fc3af5f359502334e310b432a7388298d1e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Wi=C5=9Bniowski?= Date: Mon, 24 Feb 2025 17:26:20 +0100 Subject: [PATCH] fix: fixed event reassignment on update and removed slot tests for v4 --- .../playwright-ct-svelte/registerSource.mjs | 6 +++++ .../components/ct-svelte4/tests/slots.spec.ts | 25 ------------------- 2 files changed, 6 insertions(+), 25 deletions(-) delete mode 100644 tests/components/ct-svelte4/tests/slots.spec.ts diff --git a/packages/playwright-ct-svelte/registerSource.mjs b/packages/playwright-ct-svelte/registerSource.mjs index 0d66dbf114a3c..85f7aa6015442 100644 --- a/packages/playwright-ct-svelte/registerSource.mjs +++ b/packages/playwright-ct-svelte/registerSource.mjs @@ -92,6 +92,9 @@ window.playwrightMount = async (component, rootElement, hooksConfig) => { for (const hook of window.__pw_hooks_after_mount || []) await hook({ hooksConfig, svelteComponent }); + + for (const [key, listener] of Object.entries(component.on || {})) + svelteComponent.$on(key, event => listener(event.detail)); }; window.playwrightUnmount = async rootElement => { @@ -111,4 +114,7 @@ window.playwrightUpdate = async (rootElement, component) => { throw new Error('Component was not mounted'); svelteComponent.$set(extractParams(component)); + + for (const [key, listener] of Object.entries(component.on || {})) + svelteComponent.$on(key, event => listener(event.detail)); }; diff --git a/tests/components/ct-svelte4/tests/slots.spec.ts b/tests/components/ct-svelte4/tests/slots.spec.ts deleted file mode 100644 index 4d6823abe75a5..0000000000000 --- a/tests/components/ct-svelte4/tests/slots.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { test, expect } from '@playwright/experimental-ct-svelte'; -import DefaultSlot from '@/components/DefaultSlot.svelte'; -import NamedSlots from '@/components/NamedSlots.svelte'; - -test('render a default slot', async ({ mount }) => { - const component = await mount(DefaultSlot, { - slots: { - default: 'Main Content', - }, - }); - await expect(component).toContainText('Main Content'); -}); - -test('render a component with a named slot', async ({ mount }) => { - const component = await mount(NamedSlots, { - slots: { - header: 'Header', - main: 'Main Content', - footer: 'Footer', - }, - }); - await expect(component).toContainText('Header'); - await expect(component).toContainText('Main Content'); - await expect(component).toContainText('Footer'); -});