diff --git a/tests/components/ct-svelte-vite/src/App.svelte b/tests/components/ct-svelte-vite/src/App.svelte index 4680953699..69b11de63d 100644 --- a/tests/components/ct-svelte-vite/src/App.svelte +++ b/tests/components/ct-svelte-vite/src/App.svelte @@ -1,14 +1,11 @@
Svelte Logo

Hello Typescript!

- -

Visit svelte.dev to learn how to build Svelte apps. diff --git a/tests/components/ct-svelte-vite/src/components/Button.svelte b/tests/components/ct-svelte-vite/src/components/Button.svelte new file mode 100644 index 0000000000..733ae32729 --- /dev/null +++ b/tests/components/ct-svelte-vite/src/components/Button.svelte @@ -0,0 +1,7 @@ + + + diff --git a/tests/components/ct-svelte-vite/src/components/MultiRoot.svelte b/tests/components/ct-svelte-vite/src/components/MultiRoot.svelte new file mode 100644 index 0000000000..87996d0ce0 --- /dev/null +++ b/tests/components/ct-svelte-vite/src/components/MultiRoot.svelte @@ -0,0 +1,2 @@ +

root 1
+
root 2
diff --git a/tests/components/ct-svelte-vite/src/lib/ContactCard.svelte b/tests/components/ct-svelte-vite/src/lib/ContactCard.svelte deleted file mode 100644 index f62caed6ea..0000000000 --- a/tests/components/ct-svelte-vite/src/lib/ContactCard.svelte +++ /dev/null @@ -1,47 +0,0 @@ -
-

- - Unknown name - -

- -
- - Unknown address - -
- - -
- - diff --git a/tests/components/ct-svelte-vite/src/lib/Counter.spec.ts b/tests/components/ct-svelte-vite/src/lib/Counter.spec.ts deleted file mode 100644 index 7b7c183f25..0000000000 --- a/tests/components/ct-svelte-vite/src/lib/Counter.spec.ts +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Copyright (c) Microsoft Corporation. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { test, expect } from '@playwright/experimental-ct-svelte'; -import Counter from './Counter.svelte'; - -test.use({ viewport: { width: 500, height: 500 } }); - -test('should work', async ({ mount }) => { - const values = []; - const component = await mount(Counter, { - props: { - suffix: 'my suffix', - }, - on: { - changed: value => values.push(value) - } - }); - await expect(component).toContainText('my suffix'); - await component.click(); - expect(values).toEqual([{ count: 1 }]); -}); - -test('should configure app', async ({ page, mount }) => { - const messages: string[] = []; - page.on('console', m => messages.push(m.text())); - await mount(Counter, { - props: { - units: 's', - }, - hooksConfig: { - route: 'A' - } - }); - expect(messages).toEqual(['Before mount: {\"route\":\"A\"}', 'After mount']); -}); - -test('should unmount', async ({ page, mount }) => { - const component = await mount(Counter, { - props: { - suffix: 'my suffix', - }, - }); - await expect(page.locator('#root')).toContainText('my suffix') - await component.unmount(); - await expect(page.locator('#root')).not.toContainText('my suffix'); -}); diff --git a/tests/components/ct-svelte-vite/src/lib/Counter.svelte b/tests/components/ct-svelte-vite/src/lib/Counter.svelte deleted file mode 100644 index 9d12575efc..0000000000 --- a/tests/components/ct-svelte-vite/src/lib/Counter.svelte +++ /dev/null @@ -1,38 +0,0 @@ - - - - - diff --git a/tests/components/ct-svelte-vite/src/tests.spec.ts b/tests/components/ct-svelte-vite/src/tests.spec.ts new file mode 100644 index 0000000000..c41abb50a4 --- /dev/null +++ b/tests/components/ct-svelte-vite/src/tests.spec.ts @@ -0,0 +1,76 @@ +/** + * Copyright (c) Microsoft Corporation. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { test, expect } from '@playwright/experimental-ct-svelte'; +import Button from './components/Button.svelte'; +import MultiRoot from './components/MultiRoot.svelte'; + +test.use({ viewport: { width: 500, height: 500 } }); + +test('props should work', async ({ mount }) => { + const component = await mount(Button, { + props: { + title: 'Submit' + } + }) + await expect(component).toContainText('Submit') +}) + +test('event should work', async ({ mount }) => { + const messages = [] + const component = await mount(Button, { + props: { + title: 'Submit' + }, + on: { + submit: data => messages.push(data) + } + }) + await component.click() + expect(messages).toEqual(['hello']) +}) + +test('should run hooks', async ({ page, mount }) => { + const messages = [] + page.on('console', m => messages.push(m.text())) + await mount(Button, { + props: { + title: 'Submit' + }, + hooksConfig: { route: 'A' } + }) + expect(messages).toEqual(['Before mount: {\"route\":\"A\"}', 'After mount']); +}) + +test('should unmount', async ({ page, mount }) => { + const component = await mount(Button, { + props: { + title: 'Submit' + } + }) + await expect(page.locator('#root')).toContainText('Submit') + await component.unmount(); + await expect(page.locator('#root')).not.toContainText('Submit'); +}); + +test('unmount a multi root component should work', async ({ mount, page }) => { + const component = await mount(MultiRoot) + await expect(page.locator('#root')).toContainText('root 1') + await expect(page.locator('#root')).toContainText('root 2') + await component.unmount() + await expect(page.locator('#root')).not.toContainText('root 1') + await expect(page.locator('#root')).not.toContainText('root 2') +}) diff --git a/tests/components/ct-svelte-vite/src/tests.ts b/tests/components/ct-svelte-vite/src/tests.ts deleted file mode 100644 index a1ce4f99ea..0000000000 --- a/tests/components/ct-svelte-vite/src/tests.ts +++ /dev/null @@ -1,10 +0,0 @@ -import register from '@playwright/experimental-ct-svelte/register'; -import App from './App.svelte'; -import ContactCard from './lib/ContactCard.svelte'; -import Counter from './lib/Counter.svelte'; - -register({ - App, - Counter, - ContactCard -});