=
- T extends new (...angs: any) => { $props: infer P; } ? NonNullable :
- T extends (props: infer P, ...args: any) => any ? P :
- {};
-
-export interface MountOptions {
- props?: ComponentProps;
- slots?: ComponentSlots;
- on?: ComponentEvents;
- hooksConfig?: HooksConfig;
-}
-
-export interface MountOptionsJsx {
- hooksConfig?: HooksConfig;
-}
-
-export interface MountResult extends Locator {
- unmount(): Promise;
- update(options: {
- props?: Partial>;
- slots?: Partial;
- on?: Partial;
- }): Promise;
-}
-
-export interface MountResultJsx extends Locator {
- unmount(): Promise;
- update(component: JSX.Element): Promise;
-}
-
-export const test: TestType<{
- mount(
- component: JSX.Element,
- options?: MountOptionsJsx
- ): Promise;
- mount(
- component: Component,
- options?: MountOptions
- ): Promise>;
-}>;
-
-export { defineConfig, PlaywrightTestConfig, expect, devices } from '@playwright/experimental-ct-core';
diff --git a/packages/playwright-ct-vue2/index.js b/packages/playwright-ct-vue2/index.js
deleted file mode 100644
index 2eeabb0d08..0000000000
--- a/packages/playwright-ct-vue2/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Copyright (c) Microsoft Corporation.
- *
- * 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.
- */
-
-const { test, expect, devices, defineConfig: originalDefineConfig } = require('@playwright/experimental-ct-core');
-const path = require('path');
-
-const defineConfig = (config, ...configs) => {
- return originalDefineConfig({
- ...config,
- '@playwright/test': {
- packageJSON: require.resolve('./package.json'),
- },
- '@playwright/experimental-ct-core': {
- registerSourceFile: path.join(__dirname, 'registerSource.mjs'),
- frameworkPluginFactory: () => import('@vitejs/plugin-vue2').then(plugin => plugin.default()),
- },
- }, ...configs);
-};
-
-module.exports = { test, expect, devices, defineConfig };
diff --git a/packages/playwright-ct-vue2/package.json b/packages/playwright-ct-vue2/package.json
deleted file mode 100644
index 9ec30191ad..0000000000
--- a/packages/playwright-ct-vue2/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "@playwright/experimental-ct-vue2",
- "version": "1.49.0-next",
- "description": "Playwright Component Testing for Vue2",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/microsoft/playwright.git"
- },
- "homepage": "https://playwright.dev",
- "engines": {
- "node": ">=18"
- },
- "author": {
- "name": "Microsoft Corporation"
- },
- "license": "Apache-2.0",
- "exports": {
- ".": {
- "types": "./index.d.ts",
- "default": "./index.js"
- },
- "./register": {
- "types": "./register.d.ts",
- "default": "./register.mjs"
- },
- "./hooks": {
- "types": "./hooks.d.ts",
- "default": "./hooks.mjs"
- },
- "./package.json": "./package.json"
- },
- "dependencies": {
- "@playwright/experimental-ct-core": "1.49.0-next",
- "@vitejs/plugin-vue2": "^2.2.0"
- },
- "devDependencies": {
- "vue": "^2.7.14"
- },
- "bin": {
- "playwright": "cli.js"
- }
-}
diff --git a/packages/playwright-ct-vue2/register.d.ts b/packages/playwright-ct-vue2/register.d.ts
deleted file mode 100644
index f88e9be59d..0000000000
--- a/packages/playwright-ct-vue2/register.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Copyright (c) Microsoft Corporation.
- *
- * 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.
- */
-
-export default function pwRegister(
- components: Record,
- options?: {
- createApp: any,
- setDevtoolsHook: any,
- h: any,
- }
-): void;
diff --git a/packages/playwright-ct-vue2/register.mjs b/packages/playwright-ct-vue2/register.mjs
deleted file mode 100644
index ca6a6a12d9..0000000000
--- a/packages/playwright-ct-vue2/register.mjs
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * Copyright (c) Microsoft Corporation.
- *
- * 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 { pwRegister } from './registerSource.mjs';
-
-export default components => {
- pwRegister(components);
-};
diff --git a/packages/playwright-ct-vue2/registerSource.mjs b/packages/playwright-ct-vue2/registerSource.mjs
deleted file mode 100644
index 19b4d41c08..0000000000
--- a/packages/playwright-ct-vue2/registerSource.mjs
+++ /dev/null
@@ -1,212 +0,0 @@
-/**
- * Copyright (c) Microsoft Corporation.
- *
- * 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.
- */
-
-// @ts-check
-
-// This file is injected into the registry as text, no dependencies are allowed.
-
-import __pwVue, { h as __pwH } from 'vue';
-
-/** @typedef {import('../playwright-ct-core/types/component').Component} Component */
-/** @typedef {import('../playwright-ct-core/types/component').JsxComponent} JsxComponent */
-/** @typedef {import('../playwright-ct-core/types/component').ObjectComponent} ObjectComponent */
-/** @typedef {import('vue').Component} FrameworkComponent */
-
-/**
- * @param {any} component
- * @returns {component is ObjectComponent}
- */
-function isObjectComponent(component) {
- return typeof component === 'object' && component && component.__pw_type === 'object-component';
-}
-
-/**
- * @param {any} component
- * @returns {component is JsxComponent}
- */
-function isJsxComponent(component) {
- return typeof component === 'object' && component && component.__pw_type === 'jsx';
-}
-
-/**
- * @param {any} child
- */
-function __pwCreateChild(child) {
- if (Array.isArray(child))
- return child.map(grandChild => __pwCreateChild(grandChild));
- if (isJsxComponent(child) || isObjectComponent(child))
- return __pwCreateWrapper(child);
- return child;
-}
-
-/**
- * Exists to support fallthrough attributes:
- * https://vuejs.org/guide/components/attrs.html#fallthrough-attributes
- * @param {any} Component
- * @param {string} key
- * @return {boolean}
- */
-function __pwComponentHasKeyInProps(Component, key) {
- return typeof Component.props === 'object' && Component.props && key in Component.props;
-}
-
-/**
- * @param {JsxComponent} component
- * @returns {any[] | undefined}
- */
-function __pwJsxChildArray(component) {
- if (!component.props.children)
- return;
- if (Array.isArray(component.props.children))
- return component.props.children;
- return [component.props.children];
-}
-
-/**
- * @param {Component} component
- */
-function __pwCreateComponent(component) {
- const isVueComponent = typeof component.type !== 'string';
-
- /**
- * @type {(import('vue').VNode | string)[]}
- */
- const children = [];
-
- /** @type {import('vue').VNodeData} */
- const nodeData = {};
- nodeData.attrs = {};
- nodeData.props = {};
- nodeData.scopedSlots = {};
- nodeData.on = {};
-
- if (component.__pw_type === 'jsx') {
- for (const child of __pwJsxChildArray(component) || []) {
- if (isJsxComponent(child) && child.type === 'template') {
- const slotProperty = Object.keys(child.props).find(k => k.startsWith('v-slot:'));
- const slot = slotProperty ? slotProperty.substring('v-slot:'.length) : 'default';
- nodeData.scopedSlots[slot] = () => __pwJsxChildArray(child)?.map(c => __pwCreateChild(c));
- } else {
- children.push(__pwCreateChild(child));
- }
- }
-
- for (const [key, value] of Object.entries(component.props)) {
- if (key.startsWith('v-on:')) {
- const event = key.substring('v-on:'.length);
- nodeData.on[event] = value;
- } else {
- if (isVueComponent && __pwComponentHasKeyInProps(component.type, key))
- nodeData.props[key] = value;
- else
- nodeData.attrs[key] = value;
- }
- }
- }
-
- if (component.__pw_type === 'object-component') {
- // Vue test util syntax.
- for (const [key, value] of Object.entries(component.slots || {})) {
- const list = (Array.isArray(value) ? value : [value]).map(v => __pwCreateChild(v));
- if (key === 'default')
- children.push(...list);
- else
- nodeData.scopedSlots[key] = () => list;
- }
- nodeData.props = component.props || {};
- for (const [key, value] of Object.entries(component.on || {}))
- nodeData.on[key] = value;
- }
-
- /** @type {(string|import('vue').VNode)[] | undefined} */
- let lastArg;
- if (Object.entries(nodeData.scopedSlots).length) {
- if (children.length)
- nodeData.scopedSlots.default = () => children;
- } else if (children.length) {
- lastArg = children;
- }
-
- return { Component: component.type, nodeData, slots: lastArg };
-}
-
-/**
- * @param {Component} component
- * @returns {import('vue').VNode}
- */
-function __pwCreateWrapper(component) {
- const { Component, nodeData, slots } = __pwCreateComponent(component);
- const wrapper = __pwH(Component, nodeData, slots);
- return wrapper;
-}
-
-const instanceKey = Symbol('instanceKey');
-const wrapperKey = Symbol('wrapperKey');
-
-window.playwrightMount = async (component, rootElement, hooksConfig) => {
- let options = {};
- for (const hook of window.__pw_hooks_before_mount || [])
- options = await hook({ hooksConfig, Vue: __pwVue });
-
- const instance = new __pwVue({
- ...options,
- render: () => {
- const wrapper = __pwCreateWrapper(component);
- /** @type {any} */ (rootElement)[wrapperKey] = wrapper;
- return wrapper;
- },
- }).$mount();
- rootElement.appendChild(instance.$el);
- /** @type {any} */ (rootElement)[instanceKey] = instance;
-
- for (const hook of window.__pw_hooks_after_mount || [])
- await hook({ hooksConfig, instance });
-};
-
-window.playwrightUnmount = async rootElement => {
- const component = rootElement[instanceKey];
- if (!component)
- throw new Error('Component was not mounted');
- component.$destroy();
- component.$el.remove();
- delete rootElement[instanceKey];
-};
-
-window.playwrightUpdate = async (element, options) => {
- const wrapper = /** @type {any} */(element)[wrapperKey];
- if (!wrapper)
- throw new Error('Component was not mounted');
-
- const component = wrapper.componentInstance;
- if (!component)
- throw new Error('Updating a native HTML element is not supported');
-
- const { nodeData, slots } = __pwCreateComponent(options);
-
- for (const [name, value] of Object.entries(nodeData.on || {})) {
- component.$on(name, value);
- component.$listeners[name] = value;
- }
-
- Object.assign(component.$scopedSlots, nodeData.scopedSlots);
- component.$slots.default = slots;
-
- for (const [key, value] of Object.entries(nodeData.props || {}))
- component[key] = value;
-
- if (!Object.keys(nodeData.props || {}).length)
- component.$forceUpdate();
-};
diff --git a/tests/components/ct-vue2-cli/.gitignore b/tests/components/ct-vue2-cli/.gitignore
deleted file mode 100644
index 7e2a946d8e..0000000000
--- a/tests/components/ct-vue2-cli/.gitignore
+++ /dev/null
@@ -1,23 +0,0 @@
-.DS_Store
-node_modules
-/dist
-*.tsbuildinfo
-
-# local env files
-.env.local
-.env.*.local
-
-# Log files
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-pnpm-debug.log*
-
-# Editor directories and files
-.idea
-.vscode
-*.suo
-*.ntvs*
-*.njsproj
-*.sln
-*.sw?
diff --git a/tests/components/ct-vue2-cli/README.md b/tests/components/ct-vue2-cli/README.md
deleted file mode 100644
index c9a7da714e..0000000000
--- a/tests/components/ct-vue2-cli/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# ct-vue2-cli
-
-## Project setup
-```
-npm install
-```
-
-### Compiles and hot-reloads for development
-```
-npm run serve
-```
-
-### Compiles and minifies for production
-```
-npm run build
-```
-
-### Lints and fixes files
-```
-npm run lint
-```
-
-### Customize configuration
-See [Configuration Reference](https://cli.vuejs.org/config/).
diff --git a/tests/components/ct-vue2-cli/babel.config.js b/tests/components/ct-vue2-cli/babel.config.js
deleted file mode 100644
index e9558405fd..0000000000
--- a/tests/components/ct-vue2-cli/babel.config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = {
- presets: [
- '@vue/cli-plugin-babel/preset'
- ]
-}
diff --git a/tests/components/ct-vue2-cli/package.json b/tests/components/ct-vue2-cli/package.json
deleted file mode 100644
index 472d30f92b..0000000000
--- a/tests/components/ct-vue2-cli/package.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "name": "ct-vue2-cli",
- "version": "0.1.0",
- "private": true,
- "scripts": {
- "serve": "vue-cli-service serve",
- "build": "vue-cli-service build",
- "lint": "vue-cli-service lint",
- "typecheck": "tsc --noEmit --project tsconfig.test.json"
- },
- "dependencies": {
- "core-js": "^3.8.3",
- "vue": "^2.7.13",
- "vue-router": "^3.6.5"
- },
- "devDependencies": {
- "@babel/core": "^7.23.2",
- "@babel/eslint-parser": "^7.22.15",
- "@vue/cli-plugin-babel": "~5.0.0",
- "@vue/cli-plugin-eslint": "~5.0.0",
- "@vue/cli-service": "~5.0.0",
- "@vue/tsconfig": "^0.1.3",
- "eslint": "^7.32.0",
- "eslint-plugin-vue": "^8.0.3"
- },
- "eslintConfig": {
- "root": true,
- "env": {
- "node": true
- },
- "extends": [
- "plugin:vue/essential",
- "eslint:recommended"
- ],
- "parserOptions": {
- "parser": "@babel/eslint-parser"
- },
- "rules": {}
- },
- "browserslist": [
- "> 1%",
- "last 2 versions",
- "not dead"
- ]
-}
diff --git a/tests/components/ct-vue2-cli/playwright.config.ts b/tests/components/ct-vue2-cli/playwright.config.ts
deleted file mode 100644
index 307bc9726d..0000000000
--- a/tests/components/ct-vue2-cli/playwright.config.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * Copyright (c) Microsoft Corporation.
- *
- * 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 { defineConfig, devices } from '@playwright/experimental-ct-vue2';
-import { resolve } from 'path';
-
-export default defineConfig({
- testDir: 'tests',
- forbidOnly: !!process.env.CI,
- retries: process.env.CI ? 2 : 0,
- reporter: process.env.CI ? 'html' : 'line',
- use: {
- trace: 'on-first-retry',
- ctViteConfig: {
- resolve: {
- alias: {
- '@': resolve(__dirname, './src'),
- }
- }
- }
- },
- projects: [
- {
- name: 'chromium',
- use: { ...devices['Desktop Chrome'] },
- },
- {
- name: 'firefox',
- use: { ...devices['Desktop Firefox'] },
- },
- {
- name: 'webkit',
- use: { ...devices['Desktop Safari'] },
- },
- ],
-});
diff --git a/tests/components/ct-vue2-cli/playwright/index.html b/tests/components/ct-vue2-cli/playwright/index.html
deleted file mode 100644
index 9ee6c8206e..0000000000
--- a/tests/components/ct-vue2-cli/playwright/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/components/ct-vue2-cli/playwright/index.js b/tests/components/ct-vue2-cli/playwright/index.js
deleted file mode 100644
index f5bd21d70d..0000000000
--- a/tests/components/ct-vue2-cli/playwright/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import { beforeMount, afterMount } from '@playwright/experimental-ct-vue2/hooks';
-import Router from 'vue-router';
-import { router } from '../src/router';
-import '../src/assets/index.css';
-
-beforeMount(async ({ Vue, hooksConfig }) => {
- console.log(`Before mount: ${JSON.stringify(hooksConfig)}`);
-
- if (hooksConfig?.routing) {
- Vue.use(Router);
- return { router }
- }
-});
-
-afterMount(async ({ instance }) => {
- console.log(`After mount el: ${instance.$el.constructor.name}`);
-});
diff --git a/tests/components/ct-vue2-cli/public/favicon.ico b/tests/components/ct-vue2-cli/public/favicon.ico
deleted file mode 100644
index df36fcfb72..0000000000
Binary files a/tests/components/ct-vue2-cli/public/favicon.ico and /dev/null differ
diff --git a/tests/components/ct-vue2-cli/public/index.html b/tests/components/ct-vue2-cli/public/index.html
deleted file mode 100644
index 3e5a139621..0000000000
--- a/tests/components/ct-vue2-cli/public/index.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
- <%= htmlWebpackPlugin.options.title %>
-
-
-
-
-
-
-
diff --git a/tests/components/ct-vue2-cli/src/App.vue b/tests/components/ct-vue2-cli/src/App.vue
deleted file mode 100644
index c2209eb5d7..0000000000
--- a/tests/components/ct-vue2-cli/src/App.vue
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- Login
- Dashboard
-
-
-
-
\ No newline at end of file
diff --git a/tests/components/ct-vue2-cli/src/assets/index.css b/tests/components/ct-vue2-cli/src/assets/index.css
deleted file mode 100644
index 97495c44b8..0000000000
--- a/tests/components/ct-vue2-cli/src/assets/index.css
+++ /dev/null
@@ -1,20 +0,0 @@
-body {
- margin: 0;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
- 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
- sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-code {
- font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
- monospace;
-}
-
-@media (prefers-color-scheme: light) {
- :root {
- color: #e3e3e3;
- background-color: #1b1b1d;
- }
-}
diff --git a/tests/components/ct-vue2-cli/src/assets/logo.png b/tests/components/ct-vue2-cli/src/assets/logo.png
deleted file mode 100644
index f3d2503fc2..0000000000
Binary files a/tests/components/ct-vue2-cli/src/assets/logo.png and /dev/null differ
diff --git a/tests/components/ct-vue2-cli/src/components/Button.vue b/tests/components/ct-vue2-cli/src/components/Button.vue
deleted file mode 100644
index 8bf2f3b71b..0000000000
--- a/tests/components/ct-vue2-cli/src/components/Button.vue
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
diff --git a/tests/components/ct-vue2-cli/src/components/Component.vue b/tests/components/ct-vue2-cli/src/components/Component.vue
deleted file mode 100644
index 133c8e2670..0000000000
--- a/tests/components/ct-vue2-cli/src/components/Component.vue
+++ /dev/null
@@ -1,3 +0,0 @@
-
- test
-
diff --git a/tests/components/ct-vue2-cli/src/components/Counter.vue b/tests/components/ct-vue2-cli/src/components/Counter.vue
deleted file mode 100644
index a048a43535..0000000000
--- a/tests/components/ct-vue2-cli/src/components/Counter.vue
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
diff --git a/tests/components/ct-vue2-cli/src/components/DefaultSlot.vue b/tests/components/ct-vue2-cli/src/components/DefaultSlot.vue
deleted file mode 100644
index 287b84beaf..0000000000
--- a/tests/components/ct-vue2-cli/src/components/DefaultSlot.vue
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
Welcome!
-
-
-
-
-
-
diff --git a/tests/components/ct-vue2-cli/src/components/EmptyTemplate.vue b/tests/components/ct-vue2-cli/src/components/EmptyTemplate.vue
deleted file mode 100644
index 9b4c59695e..0000000000
--- a/tests/components/ct-vue2-cli/src/components/EmptyTemplate.vue
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/tests/components/ct-vue2-cli/src/components/NamedSlots.vue b/tests/components/ct-vue2-cli/src/components/NamedSlots.vue
deleted file mode 100644
index 582608df32..0000000000
--- a/tests/components/ct-vue2-cli/src/components/NamedSlots.vue
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/tests/components/ct-vue2-cli/src/main.js b/tests/components/ct-vue2-cli/src/main.js
deleted file mode 100644
index b92d6e3e04..0000000000
--- a/tests/components/ct-vue2-cli/src/main.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import Vue from 'vue';
-import Router from 'vue-router';
-import App from './App.vue';
-import { router } from './router';
-import './assets/index.css';
-
-Vue.config.productionTip = false;
-
-Vue.use(Router);
-
-new Vue({
- router,
- render: h => h(App),
-}).$mount('#app');
diff --git a/tests/components/ct-vue2-cli/src/pages/DashboardPage.vue b/tests/components/ct-vue2-cli/src/pages/DashboardPage.vue
deleted file mode 100644
index 0dcf8cc990..0000000000
--- a/tests/components/ct-vue2-cli/src/pages/DashboardPage.vue
+++ /dev/null
@@ -1,3 +0,0 @@
-
- Dashboard
-
diff --git a/tests/components/ct-vue2-cli/src/pages/LoginPage.vue b/tests/components/ct-vue2-cli/src/pages/LoginPage.vue
deleted file mode 100644
index aaa18be8ab..0000000000
--- a/tests/components/ct-vue2-cli/src/pages/LoginPage.vue
+++ /dev/null
@@ -1,3 +0,0 @@
-
- Login
-
diff --git a/tests/components/ct-vue2-cli/src/router/index.js b/tests/components/ct-vue2-cli/src/router/index.js
deleted file mode 100644
index 3e5680ca8e..0000000000
--- a/tests/components/ct-vue2-cli/src/router/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import Router from 'vue-router';
-import LoginPage from '../pages/LoginPage.vue';
-import DashboardPage from '../pages/DashboardPage.vue';
-
-export const router = new Router({
- mode: 'history',
- base: '/',
- routes: [
- { path: '/', component: LoginPage },
- { path: '/dashboard', component: DashboardPage }
- ]
-});
diff --git a/tests/components/ct-vue2-cli/src/shims-vue.d.ts b/tests/components/ct-vue2-cli/src/shims-vue.d.ts
deleted file mode 100644
index 8f6f410263..0000000000
--- a/tests/components/ct-vue2-cli/src/shims-vue.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare module '*.vue' {
- import Vue from 'vue';
- export default Vue;
-}
diff --git a/tests/components/ct-vue2-cli/tests/events/events.spec.ts b/tests/components/ct-vue2-cli/tests/events/events.spec.ts
deleted file mode 100644
index 71c4c958a9..0000000000
--- a/tests/components/ct-vue2-cli/tests/events/events.spec.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { test, expect } from '@playwright/experimental-ct-vue2';
-import Button from '@/components/Button.vue';
-
-test('emit an submit event when the button is clicked', async ({ mount }) => {
- const messages: string[] = [];
- const component = await mount(Button, {
- props: {
- title: 'Submit',
- },
- on: {
- submit: (data: string) => messages.push(data),
- },
- });
- await component.click();
- expect(messages).toEqual(['hello']);
-});
diff --git a/tests/components/ct-vue2-cli/tests/events/events.spec.tsx b/tests/components/ct-vue2-cli/tests/events/events.spec.tsx
deleted file mode 100644
index 9d31d708fb..0000000000
--- a/tests/components/ct-vue2-cli/tests/events/events.spec.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import { test, expect } from '@playwright/experimental-ct-vue2';
-import Button from '@/components/Button.vue';
-import DefaultSlot from '@/components/DefaultSlot.vue';
-
-test('emit an submit event when the button is clicked', async ({ mount }) => {
- const messages: string[] = [];
- const component = await mount(
-