From 348bfabe69a765dc92aa7022e647c47feb1d74b5 Mon Sep 17 00:00:00 2001 From: protobuf-ci-cd Date: Tue, 29 Jul 2025 00:15:51 +0200 Subject: [PATCH] fix(Toggle): side effect broken e2e test Signed-off-by: protobuf-ci-cd --- biome.json | 3 ++ e2e/package.json | 3 +- e2e/playwright.config.ts | 1 + e2e/tests/toggle/render.tsx | 70 +++++++++++++++++++++++++++++++++++ e2e/tests/toggle/test.spec.ts | 12 ++++++ 5 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 e2e/tests/toggle/render.tsx create mode 100644 e2e/tests/toggle/test.spec.ts diff --git a/biome.json b/biome.json index b1a7c54b39..6646bf50ca 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,6 @@ { "$schema": "./node_modules/@biomejs/biome/configuration_schema.json", + "experimentalScannerIgnores": [".git", "dist", "node_modules"], "assist": { "actions": { "source": { @@ -9,11 +10,13 @@ "useSortedProperties": "on" } }, + "includes": [ "!**/package.json", "**/*.ts", "**/*.tsx", "!**/dist/**", + "!**/node_modules/**", "!**/build/**", "!**/.turbo/**", "!**/prebuild.ts", diff --git a/e2e/package.json b/e2e/package.json index 0c79f91be9..850e3d91a7 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -6,7 +6,8 @@ "scripts": { "start": "vite", "e2e": "playwright test", - "e2e:debug": "playwright test --ui", + "e2e:ui": "playwright test --ui", + "e2e:debug": "PWDEBUG=1 pnpm playwright test", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview" diff --git a/e2e/playwright.config.ts b/e2e/playwright.config.ts index 1786a626ae..6850b71dca 100644 --- a/e2e/playwright.config.ts +++ b/e2e/playwright.config.ts @@ -3,6 +3,7 @@ import { defineConfig, devices } from '@playwright/test' const isCI = process.env['CI'] +// const isDebug = process.env['PWDEBUG'] const baseURL = 'http://localhost:5173' diff --git a/e2e/tests/toggle/render.tsx b/e2e/tests/toggle/render.tsx new file mode 100644 index 0000000000..65d2454df6 --- /dev/null +++ b/e2e/tests/toggle/render.tsx @@ -0,0 +1,70 @@ +import { + CheckboxField, + Form, + Submit, + ToggleField, + useForm, +} from '@ultraviolet/form' +import { Checkbox, Stack, Toggle } from '@ultraviolet/ui' +import { useReducer } from 'react' + +const defaultError = ({ label }: { label: string }) => + `${label} is default error` + +const formError = { + isInteger: defaultError, + max: defaultError, + maxDate: defaultError, + maxLength: defaultError, + min: defaultError, + minDate: defaultError, + minLength: defaultError, + pattern: defaultError, + required: defaultError, +} +const defaultReducer = (state: boolean) => !state + +const Render = () => { + const [checkbox, toggleCheckbox] = useReducer(defaultReducer, false) + const [toggle, toggleToggle] = useReducer(defaultReducer, false) + + const methods = useForm({ + defaultValues: { + checkboxForm: false, + toggleFieldForm: false, + }, + mode: 'onChange', + }) + + return ( + + + + + +
{}} + > + + + CheckboxField + + Submit + +
+ ) +} +export default Render diff --git a/e2e/tests/toggle/test.spec.ts b/e2e/tests/toggle/test.spec.ts new file mode 100644 index 0000000000..f412a621bb --- /dev/null +++ b/e2e/tests/toggle/test.spec.ts @@ -0,0 +1,12 @@ +import { test } from '@playwright/test' + +test('toggled component(s)', async ({ page, baseURL }) => { + await page.goto(`${baseURL}/toggle`) + + await page.getByLabel('Checkbox', { exact: true }).check() + await page.getByLabel('Toggle', { exact: true }).check() + + await page.getByLabel('CheckboxField', { exact: true }).check() + await page.getByLabel('ToggleField', { exact: true }).check() + await page.getByRole('button').click() +})