Skip to content

Commit 7500e41

Browse files
philibeaprotobuf-ci-cd
authored andcommitted
fix(Toggle): side effect broken e2e test
Signed-off-by: protobuf-ci-cd <[email protected]>
1 parent b28f612 commit 7500e41

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

@@ -38,13 +39,13 @@ export default defineConfig({
3839
name: 'chromium',
3940
use: { ...devices['Desktop Chrome'] },
4041
},
41-
{
42-
name: 'firefox',
43-
use: { ...devices['Desktop Firefox'] },
44-
},
45-
{
46-
name: 'webkit',
47-
use: { ...devices['Desktop Safari'] },
48-
},
42+
// {
43+
// name: 'firefox',
44+
// use: { ...devices['Desktop Firefox'] },
45+
// },
46+
// {
47+
// name: 'webkit',
48+
// use: { ...devices['Desktop Safari'] },
49+
// },
4950
],
5051
})

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)