feat: install @playwright/test + playwright.config.ts
This commit is contained in:
@@ -20,7 +20,15 @@ const nodeGlobals = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export default [
|
export default [
|
||||||
{ ignores: ["node_modules/**", "packages/**", "apps/**", "turbo/**"] },
|
{
|
||||||
|
ignores: [
|
||||||
|
"node_modules/**",
|
||||||
|
"packages/**",
|
||||||
|
"apps/**",
|
||||||
|
"turbo/**",
|
||||||
|
"playwright.config.ts",
|
||||||
|
],
|
||||||
|
},
|
||||||
js.configs.recommended,
|
js.configs.recommended,
|
||||||
{
|
{
|
||||||
files: ["scripts/**/*.{mjs,cjs,js}"],
|
files: ["scripts/**/*.{mjs,cjs,js}"],
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@ai-hero/sandcastle": "*",
|
"@ai-hero/sandcastle": "*",
|
||||||
|
"@playwright/test": "^1.49.0",
|
||||||
"@turbo/gen": "^2.4.0",
|
"@turbo/gen": "^2.4.0",
|
||||||
"@types/node": "^22.0.0",
|
"@types/node": "^22.0.0",
|
||||||
"husky": "^9.0.0",
|
"husky": "^9.0.0",
|
||||||
@@ -31,7 +32,7 @@
|
|||||||
},
|
},
|
||||||
"lint-staged": {
|
"lint-staged": {
|
||||||
"*.{ts,tsx,js,mjs,jsx}": [
|
"*.{ts,tsx,js,mjs,jsx}": [
|
||||||
"eslint --fix --max-warnings=0"
|
"eslint --fix --max-warnings=0 --no-warn-ignored"
|
||||||
],
|
],
|
||||||
"*.{ts,tsx,js,mjs,jsx,json,md,yml,yaml}": [
|
"*.{ts,tsx,js,mjs,jsx,json,md,yml,yaml}": [
|
||||||
"prettier --write"
|
"prettier --write"
|
||||||
|
|||||||
30
playwright.config.ts
Normal file
30
playwright.config.ts
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
import { defineConfig, devices } from "@playwright/test";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Playwright config for visual regression against Storybook.
|
||||||
|
*
|
||||||
|
* Expectations:
|
||||||
|
* - Storybook is served at http://localhost:6006 BEFORE running these tests.
|
||||||
|
* The pnpm test:visual script wraps the start + run + stop dance.
|
||||||
|
* - Screenshot baselines live next to each test file in __snapshots__/.
|
||||||
|
* - One browser (chromium) is enough for v1; multi-browser comes later.
|
||||||
|
*/
|
||||||
|
export default defineConfig({
|
||||||
|
testDir: "./apps/storybook/tests",
|
||||||
|
testMatch: /.*\.spec\.ts/,
|
||||||
|
fullyParallel: false,
|
||||||
|
reporter: process.env.CI ? "github" : "list",
|
||||||
|
use: {
|
||||||
|
baseURL: "http://localhost:6006",
|
||||||
|
viewport: { width: 1280, height: 720 },
|
||||||
|
screenshot: "only-on-failure",
|
||||||
|
},
|
||||||
|
expect: {
|
||||||
|
toHaveScreenshot: {
|
||||||
|
// Tolerate up to 1% pixel difference. Tune when first real component
|
||||||
|
// lands and the noise floor is measurable.
|
||||||
|
maxDiffPixelRatio: 0.01,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
projects: [{ name: "chromium", use: { ...devices["Desktop Chrome"] } }],
|
||||||
|
});
|
||||||
3
pnpm-lock.yaml
generated
3
pnpm-lock.yaml
generated
@@ -10,6 +10,9 @@ importers:
|
|||||||
"@ai-hero/sandcastle":
|
"@ai-hero/sandcastle":
|
||||||
specifier: "*"
|
specifier: "*"
|
||||||
version: 0.5.10(@effect/cluster@0.57.0(@effect/platform@0.95.0(effect@3.21.2))(@effect/rpc@0.74.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/sql@0.50.0(@effect/experimental@0.59.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/workflow@0.17.0(@effect/experimental@0.59.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/platform@0.95.0(effect@3.21.2))(@effect/rpc@0.74.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(effect@3.21.2))(effect@3.21.2))(@effect/rpc@0.74.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/sql@0.50.0(@effect/experimental@0.59.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/typeclass@0.39.0(effect@3.21.2))
|
version: 0.5.10(@effect/cluster@0.57.0(@effect/platform@0.95.0(effect@3.21.2))(@effect/rpc@0.74.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/sql@0.50.0(@effect/experimental@0.59.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/workflow@0.17.0(@effect/experimental@0.59.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/platform@0.95.0(effect@3.21.2))(@effect/rpc@0.74.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(effect@3.21.2))(effect@3.21.2))(@effect/rpc@0.74.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/sql@0.50.0(@effect/experimental@0.59.0(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/platform@0.95.0(effect@3.21.2))(effect@3.21.2))(@effect/typeclass@0.39.0(effect@3.21.2))
|
||||||
|
"@playwright/test":
|
||||||
|
specifier: ^1.49.0
|
||||||
|
version: 1.59.1
|
||||||
"@turbo/gen":
|
"@turbo/gen":
|
||||||
specifier: ^2.4.0
|
specifier: ^2.4.0
|
||||||
version: 2.9.10(@types/node@22.19.17)
|
version: 2.9.10(@types/node@22.19.17)
|
||||||
|
|||||||
Reference in New Issue
Block a user