From 87b896e597f3d60f55505dae5b7e9f57abe03790 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Fri, 25 Oct 2024 13:31:55 -0700 Subject: [PATCH] chore: remove playwright-ct-vue2 (#33302) --- docs/src/test-components-js.md | 35 --- package-lock.json | 80 ------- packages/playwright-ct-vue2/.npmignore | 12 - packages/playwright-ct-vue2/README.md | 3 - packages/playwright-ct-vue2/cli.js | 20 -- packages/playwright-ct-vue2/hooks.d.ts | 37 --- packages/playwright-ct-vue2/hooks.mjs | 29 --- packages/playwright-ct-vue2/index.d.ts | 66 ------ packages/playwright-ct-vue2/index.js | 33 --- packages/playwright-ct-vue2/package.json | 42 ---- packages/playwright-ct-vue2/register.d.ts | 24 -- packages/playwright-ct-vue2/register.mjs | 21 -- .../playwright-ct-vue2/registerSource.mjs | 212 ------------------ tests/components/ct-vue2-cli/.gitignore | 23 -- tests/components/ct-vue2-cli/README.md | 24 -- tests/components/ct-vue2-cli/babel.config.js | 5 - tests/components/ct-vue2-cli/package.json | 45 ---- .../ct-vue2-cli/playwright.config.ts | 49 ---- .../ct-vue2-cli/playwright/index.html | 12 - .../ct-vue2-cli/playwright/index.js | 17 -- .../components/ct-vue2-cli/public/favicon.ico | Bin 4286 -> 0 bytes .../components/ct-vue2-cli/public/index.html | 17 -- tests/components/ct-vue2-cli/src/App.vue | 10 - .../ct-vue2-cli/src/assets/index.css | 20 -- .../ct-vue2-cli/src/assets/logo.png | Bin 6849 -> 0 bytes .../ct-vue2-cli/src/components/Button.vue | 10 - .../ct-vue2-cli/src/components/Component.vue | 3 - .../ct-vue2-cli/src/components/Counter.vue | 23 -- .../src/components/DefaultSlot.vue | 11 - .../src/components/EmptyTemplate.vue | 8 - .../ct-vue2-cli/src/components/NamedSlots.vue | 13 -- tests/components/ct-vue2-cli/src/main.js | 14 -- .../ct-vue2-cli/src/pages/DashboardPage.vue | 3 - .../ct-vue2-cli/src/pages/LoginPage.vue | 3 - .../ct-vue2-cli/src/router/index.js | 12 - .../components/ct-vue2-cli/src/shims-vue.d.ts | 4 - .../ct-vue2-cli/tests/events/events.spec.ts | 16 -- .../ct-vue2-cli/tests/events/events.spec.tsx | 28 --- .../ct-vue2-cli/tests/render/render.spec.ts | 25 --- .../ct-vue2-cli/tests/render/render.spec.tsx | 21 -- .../ct-vue2-cli/tests/slots/slots.spec.ts | 35 --- .../ct-vue2-cli/tests/slots/slots.spec.tsx | 48 ---- .../ct-vue2-cli/tests/unmount/unmount.spec.ts | 38 ---- .../tests/unmount/unmount.spec.tsx | 22 -- .../ct-vue2-cli/tests/update/update.spec.ts | 52 ----- .../ct-vue2-cli/tests/update/update.spec.tsx | 53 ----- .../tests/vue-router/vue-router.spec.ts | 13 -- .../tests/vue-router/vue-router.spec.tsx | 13 -- .../components/ct-vue2-cli/tsconfig.app.json | 12 - .../ct-vue2-cli/tsconfig.config.json | 8 - tests/components/ct-vue2-cli/tsconfig.json | 14 -- .../components/ct-vue2-cli/tsconfig.test.json | 11 - tests/components/ct-vue2-cli/vue.config.js | 4 - utils/workspace.js | 5 - 54 files changed, 1358 deletions(-) delete mode 100644 packages/playwright-ct-vue2/.npmignore delete mode 100644 packages/playwright-ct-vue2/README.md delete mode 100755 packages/playwright-ct-vue2/cli.js delete mode 100644 packages/playwright-ct-vue2/hooks.d.ts delete mode 100644 packages/playwright-ct-vue2/hooks.mjs delete mode 100644 packages/playwright-ct-vue2/index.d.ts delete mode 100644 packages/playwright-ct-vue2/index.js delete mode 100644 packages/playwright-ct-vue2/package.json delete mode 100644 packages/playwright-ct-vue2/register.d.ts delete mode 100644 packages/playwright-ct-vue2/register.mjs delete mode 100644 packages/playwright-ct-vue2/registerSource.mjs delete mode 100644 tests/components/ct-vue2-cli/.gitignore delete mode 100644 tests/components/ct-vue2-cli/README.md delete mode 100644 tests/components/ct-vue2-cli/babel.config.js delete mode 100644 tests/components/ct-vue2-cli/package.json delete mode 100644 tests/components/ct-vue2-cli/playwright.config.ts delete mode 100644 tests/components/ct-vue2-cli/playwright/index.html delete mode 100644 tests/components/ct-vue2-cli/playwright/index.js delete mode 100644 tests/components/ct-vue2-cli/public/favicon.ico delete mode 100644 tests/components/ct-vue2-cli/public/index.html delete mode 100644 tests/components/ct-vue2-cli/src/App.vue delete mode 100644 tests/components/ct-vue2-cli/src/assets/index.css delete mode 100644 tests/components/ct-vue2-cli/src/assets/logo.png delete mode 100644 tests/components/ct-vue2-cli/src/components/Button.vue delete mode 100644 tests/components/ct-vue2-cli/src/components/Component.vue delete mode 100644 tests/components/ct-vue2-cli/src/components/Counter.vue delete mode 100644 tests/components/ct-vue2-cli/src/components/DefaultSlot.vue delete mode 100644 tests/components/ct-vue2-cli/src/components/EmptyTemplate.vue delete mode 100644 tests/components/ct-vue2-cli/src/components/NamedSlots.vue delete mode 100644 tests/components/ct-vue2-cli/src/main.js delete mode 100644 tests/components/ct-vue2-cli/src/pages/DashboardPage.vue delete mode 100644 tests/components/ct-vue2-cli/src/pages/LoginPage.vue delete mode 100644 tests/components/ct-vue2-cli/src/router/index.js delete mode 100644 tests/components/ct-vue2-cli/src/shims-vue.d.ts delete mode 100644 tests/components/ct-vue2-cli/tests/events/events.spec.ts delete mode 100644 tests/components/ct-vue2-cli/tests/events/events.spec.tsx delete mode 100644 tests/components/ct-vue2-cli/tests/render/render.spec.ts delete mode 100644 tests/components/ct-vue2-cli/tests/render/render.spec.tsx delete mode 100644 tests/components/ct-vue2-cli/tests/slots/slots.spec.ts delete mode 100644 tests/components/ct-vue2-cli/tests/slots/slots.spec.tsx delete mode 100644 tests/components/ct-vue2-cli/tests/unmount/unmount.spec.ts delete mode 100644 tests/components/ct-vue2-cli/tests/unmount/unmount.spec.tsx delete mode 100644 tests/components/ct-vue2-cli/tests/update/update.spec.ts delete mode 100644 tests/components/ct-vue2-cli/tests/update/update.spec.tsx delete mode 100644 tests/components/ct-vue2-cli/tests/vue-router/vue-router.spec.ts delete mode 100644 tests/components/ct-vue2-cli/tests/vue-router/vue-router.spec.tsx delete mode 100644 tests/components/ct-vue2-cli/tsconfig.app.json delete mode 100644 tests/components/ct-vue2-cli/tsconfig.config.json delete mode 100644 tests/components/ct-vue2-cli/tsconfig.json delete mode 100644 tests/components/ct-vue2-cli/tsconfig.test.json delete mode 100644 tests/components/ct-vue2-cli/vue.config.js diff --git a/docs/src/test-components-js.md b/docs/src/test-components-js.md index 91d1860a26..e4f19d6fc2 100644 --- a/docs/src/test-components-js.md +++ b/docs/src/test-components-js.md @@ -521,7 +521,6 @@ You can use `beforeMount` and `afterMount` hooks to configure your app. This let {label: 'React', value: 'react'}, {label: 'Solid', value: 'solid'}, {label: 'Vue3', value: 'vue3'}, - {label: 'Vue2', value: 'vue2'}, ] }> @@ -617,40 +616,6 @@ You can use `beforeMount` and `afterMount` hooks to configure your app. This let - - - ```js title="playwright/index.ts" - import { beforeMount, afterMount } from '@playwright/experimental-ct-vue2/hooks'; - import Router from 'vue-router'; - import { router } from '../src/router'; - - export type HooksConfig = { - enableRouting?: boolean; - } - - beforeMount(async ({ app, hooksConfig }) => { - if (hooksConfig?.enableRouting) { - Vue.use(Router); - return { router } - } - }); - ``` - - ```js title="src/pages/ProductsPage.spec.ts" - import { test, expect } from '@playwright/experimental-ct-vue2'; - import type { HooksConfig } from '../playwright'; - import ProductsPage from './pages/ProductsPage.vue'; - - test('configure routing through hooks config', async ({ page, mount }) => { - const component = await mount(ProductsPage, { - hooksConfig: { enableRouting: true }, - }); - await expect(component.getByRole('link')).toHaveAttribute('href', '/products/42'); - }); - ``` - - - ### unmount diff --git a/package-lock.json b/package-lock.json index 57046ec2f8..3f503e4c09 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1508,10 +1508,6 @@ "resolved": "packages/playwright-ct-vue", "link": true }, - "node_modules/@playwright/experimental-ct-vue2": { - "resolved": "packages/playwright-ct-vue2", - "link": true - }, "node_modules/@playwright/test": { "resolved": "packages/playwright-test", "link": true @@ -5964,21 +5960,6 @@ "node": ">= 0.8.0" } }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "optional": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -6593,14 +6574,6 @@ "solid-js": "^1.3" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -8097,59 +8070,6 @@ "node": ">=18" } }, - "packages/playwright-ct-vue2": { - "name": "@playwright/experimental-ct-vue2", - "version": "1.49.0-next", - "license": "Apache-2.0", - "dependencies": { - "@playwright/experimental-ct-core": "1.49.0-next", - "@vitejs/plugin-vue2": "^2.2.0" - }, - "bin": { - "playwright": "cli.js" - }, - "devDependencies": { - "vue": "^2.7.14" - }, - "engines": { - "node": ">=18" - } - }, - "packages/playwright-ct-vue2/node_modules/@vitejs/plugin-vue2": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue2/-/plugin-vue2-2.3.1.tgz", - "integrity": "sha512-/ksaaz2SRLN11JQhLdEUhDzOn909WEk99q9t9w+N12GjQCljzv7GyvAbD/p20aBUjHkvpGOoQ+FCOkG+mjDF4A==", - "engines": { - "node": "^14.18.0 || >= 16.0.0" - }, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0", - "vue": "^2.7.0-0" - } - }, - "packages/playwright-ct-vue2/node_modules/@vue/compiler-sfc": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz", - "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==", - "dependencies": { - "@babel/parser": "^7.23.5", - "postcss": "^8.4.14", - "source-map": "^0.6.1" - }, - "optionalDependencies": { - "prettier": "^1.18.2 || ^2.0.0" - } - }, - "packages/playwright-ct-vue2/node_modules/vue": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz", - "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==", - "deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.", - "dependencies": { - "@vue/compiler-sfc": "2.7.16", - "csstype": "^3.1.0" - } - }, "packages/playwright-firefox": { "version": "1.49.0-next", "hasInstallScript": true, diff --git a/packages/playwright-ct-vue2/.npmignore b/packages/playwright-ct-vue2/.npmignore deleted file mode 100644 index 62701eb493..0000000000 --- a/packages/playwright-ct-vue2/.npmignore +++ /dev/null @@ -1,12 +0,0 @@ -**/* - -!README.md -!LICENSE -!cli.js -!register.d.ts -!register.mjs -!registerSource.mjs -!index.d.ts -!index.js -!hooks.d.ts -!hooks.mjs diff --git a/packages/playwright-ct-vue2/README.md b/packages/playwright-ct-vue2/README.md deleted file mode 100644 index 23ae82312d..0000000000 --- a/packages/playwright-ct-vue2/README.md +++ /dev/null @@ -1,3 +0,0 @@ -> **BEWARE** This package is EXPERIMENTAL and does not respect semver. - -Read more at https://playwright.dev/docs/test-components diff --git a/packages/playwright-ct-vue2/cli.js b/packages/playwright-ct-vue2/cli.js deleted file mode 100755 index 9cc834ee95..0000000000 --- a/packages/playwright-ct-vue2/cli.js +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env node -/** - * 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 { program } = require('@playwright/experimental-ct-core/lib/program'); - -program.parse(process.argv); diff --git a/packages/playwright-ct-vue2/hooks.d.ts b/packages/playwright-ct-vue2/hooks.d.ts deleted file mode 100644 index 5009f44348..0000000000 --- a/packages/playwright-ct-vue2/hooks.d.ts +++ /dev/null @@ -1,37 +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 type { ComponentOptions } from 'vue'; -import type { CombinedVueInstance, Vue, VueConstructor } from 'vue/types/vue'; - -export declare function beforeMount( - callback: (params: { - hooksConfig?: HooksConfig, - Vue: VueConstructor, - }) => Promise & Record> -): void; -export declare function afterMount( - callback: (params: { - hooksConfig?: HooksConfig; - instance: CombinedVueInstance< - Vue, - object, - object, - object, - Record - >; - }) => Promise -): void; diff --git a/packages/playwright-ct-vue2/hooks.mjs b/packages/playwright-ct-vue2/hooks.mjs deleted file mode 100644 index b7cea242c4..0000000000 --- a/packages/playwright-ct-vue2/hooks.mjs +++ /dev/null @@ -1,29 +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 __pw_hooks_before_mount = []; -const __pw_hooks_after_mount = []; - -window.__pw_hooks_before_mount = __pw_hooks_before_mount; -window.__pw_hooks_after_mount = __pw_hooks_after_mount; - -export const beforeMount = callback => { - __pw_hooks_before_mount.push(callback); -}; - -export const afterMount = callback => { - __pw_hooks_after_mount.push(callback); -}; diff --git a/packages/playwright-ct-vue2/index.d.ts b/packages/playwright-ct-vue2/index.d.ts deleted file mode 100644 index 133b4a60f2..0000000000 --- a/packages/playwright-ct-vue2/index.d.ts +++ /dev/null @@ -1,66 +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 type { TestType, Locator } from '@playwright/experimental-ct-core'; - -type Slot = string | string[]; -type ComponentSlots = Record & { default?: Slot }; - -type ComponentEvents = Record; - -// Copied from: https://github.com/vuejs/language-tools/blob/master/packages/vue-component-type-helpers/index.d.ts#L10-L13 -type ComponentProps = - 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 df36fcfb72584e00488330b560ebcf34a41c64c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S 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 @@ - \ 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 f3d2503fc2a44b5053b0837ebea6e87a2d339a43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6849 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 - - - - 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 @@ - 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 @@ - 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 @@ - 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 @@ - 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( -