Skip to content

Commit d40476d

Browse files
committed
fix(Toggle): side effect broken e2e test
Signed-off-by: protobuf-ci-cd <[email protected]>
1 parent 35a6123 commit d40476d

File tree

4 files changed

+86
-9
lines changed

4 files changed

+86
-9
lines changed

e2e/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"scripts": {
77
"start": "vite",
88
"e2e": "playwright test",
9-
"e2e:debug": "playwright test --ui",
9+
"e2e:ui": "playwright test --ui",
10+
"e2e:debug": "PWDEBUG=1 pnpm playwright test",
1011
"build": "tsc -b && vite build",
1112
"lint": "eslint .",
1213
"preview": "vite preview"

e2e/playwright.config.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import { defineConfig, devices } from '@playwright/test'
44

55
const isCI = process.env['CI']
6+
// const isDebug = process.env['PWDEBUG']
67

78
const baseURL = 'http://localhost:5173'
89

@@ -22,14 +23,14 @@ export default defineConfig({
2223
name: 'chromium',
2324
use: { ...devices['Desktop Chrome'] },
2425
},
25-
{
26-
name: 'firefox',
27-
use: { ...devices['Desktop Firefox'] },
28-
},
29-
{
30-
name: 'webkit',
31-
use: { ...devices['Desktop Safari'] },
32-
},
26+
// {
27+
// name: 'firefox',
28+
// use: { ...devices['Desktop Firefox'] },
29+
// },
30+
// {
31+
// name: 'webkit',
32+
// use: { ...devices['Desktop Safari'] },
33+
// },
3334
],
3435
reporter: 'line',
3536
retries: isCI ? 2 : 0,

e2e/tests/toggle/render.tsx

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import {
2+
Checkbox,
3+
Stack,
4+
Toggle
5+
} from '@ultraviolet/ui'
6+
import { useForm, CheckboxField, ToggleField,Submit, Form } from '@ultraviolet/form'
7+
import { useReducer } from 'react'
8+
9+
const defaultError = ({ label }: { label: string}) => `${label} is default error`
10+
11+
const formError = {
12+
min: defaultError,
13+
minLength: defaultError,
14+
max: defaultError,
15+
maxLength: defaultError,
16+
required: defaultError,
17+
minDate: defaultError,
18+
maxDate: defaultError,
19+
pattern: defaultError,
20+
isInteger: defaultError,
21+
}
22+
23+
const Render = () => {
24+
const [checkbox, toggleCheckbox] = useReducer(r => !r, false)
25+
const [toggle, toggleToggle] = useReducer(r => !r, false)
26+
27+
const methods = useForm({
28+
defaultValues: {
29+
checkboxForm: false,
30+
toggleFieldForm: false,
31+
},
32+
mode: 'onChange',
33+
})
34+
35+
return (
36+
<Stack gap={1} flex={1}>
37+
38+
<Toggle
39+
name="toggle"
40+
label="Toggle"
41+
checked={toggle}
42+
onChange={toggleToggle}
43+
/>
44+
45+
<Checkbox
46+
name="checkbox"
47+
aria-label="Checkbox"
48+
checked={checkbox}
49+
onChange={toggleCheckbox}
50+
/>
51+
52+
<Form name="form" methods={methods} onSubmit={() => {}} errors={formError}>
53+
<ToggleField name="toggleFieldForm" label="ToggleField" />
54+
<CheckboxField name="checkboxForm" label="CheckboxField" >
55+
CheckboxField
56+
</CheckboxField>
57+
<Submit>Submit</Submit>
58+
</Form>
59+
60+
</Stack>
61+
)
62+
}
63+
export default Render

e2e/tests/toggle/test.spec.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { test } from '@playwright/test'
2+
3+
test('toggled component(s)', async ({ page, baseURL }) => {
4+
await page.goto(`${baseURL}/toggle`)
5+
6+
await page.getByLabel('Checkbox', { exact: true, }).check()
7+
await page.getByLabel('Toggle', { exact: true, }).check()
8+
9+
await page.getByLabel('CheckboxField', { exact: true, }).check()
10+
await page.getByLabel('ToggleField', { exact: true, }).check()
11+
await page.getByRole('button').click()
12+
})

0 commit comments

Comments
 (0)