-
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
-
-
-
-
-
- Unknown email
-
-
-
-
-
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
-});