@zap-wunschlachen/wl-shared-components 1.0.25 → 1.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/playwright.yml +205 -205
- package/.github/workflows/static.yml +61 -61
- package/.github/workflows/update-snapshots.yml +37 -37
- package/.prettierrc +5 -5
- package/.storybook/main.ts +18 -18
- package/.storybook/preview.ts +37 -37
- package/.storybook/storyWrapper.vue +18 -18
- package/.storybook/withVuetifyTheme.decorator.ts +21 -21
- package/App.vue +34 -176
- package/README.md +56 -56
- package/heroicons.ts +75 -75
- package/index.html +19 -19
- package/package.json +67 -67
- package/playwright.config.ts +48 -48
- package/public/background.svg +60 -60
- package/public/style.css +187 -187
- package/public/technologies.svg +22 -22
- package/src/assets/css/base.css +235 -235
- package/src/assets/css/variables.css +107 -96
- package/src/components/Accordion/Accordion.css +59 -59
- package/src/components/Accordion/AccordionGroup.vue +51 -51
- package/src/components/Accordion/AccordionItem.vue +66 -66
- package/src/components/Appointment/Card/Actions.css +54 -54
- package/src/components/Appointment/Card/Actions.vue +99 -99
- package/src/components/Appointment/Card/AnamneseNotification.css +15 -15
- package/src/components/Appointment/Card/AnamneseNotification.vue +23 -23
- package/src/components/Appointment/Card/Card.css +80 -80
- package/src/components/Appointment/Card/Card.vue +93 -93
- package/src/components/Appointment/Card/Details.css +50 -50
- package/src/components/Appointment/Card/Details.vue +43 -43
- package/src/components/Audio/Audio.vue +187 -187
- package/src/components/Audio/Waveform.vue +117 -117
- package/src/components/Background/Background.css +39 -0
- package/src/components/Background/Background.vue +19 -0
- package/src/components/Background/WhiteCocoonBackground.vue +9 -0
- package/src/components/Background/WunschlachenBackground.vue +11 -0
- package/src/components/Button/Button.vue +119 -119
- package/src/components/CheckBox/CheckBox.css +185 -185
- package/src/components/CheckBox/Checkbox.vue +130 -130
- package/src/components/DateInput/DateInput.css +2 -2
- package/src/components/DateInput/DateInput.vue +262 -262
- package/src/components/Dialog/Dialog.css +6 -6
- package/src/components/Dialog/Dialog.vue +29 -29
- package/src/components/EditField/EditField.css +19 -19
- package/src/components/EditField/EditField.vue +202 -202
- package/src/components/ErrorPage/ErrorPage.css +124 -0
- package/src/components/ErrorPage/ErrorPage.vue +45 -0
- package/src/components/ErrorPage/ErrorPageLogo.vue +26 -0
- package/src/components/IconBullet/IconBullet.vue +86 -86
- package/src/components/IconBullet/IconBulletList.vue +41 -41
- package/src/components/Icons/AdvanceAppointments.vue +153 -153
- package/src/components/Icons/Audio/CloudFailed.vue +20 -20
- package/src/components/Icons/Audio/CloudSaved.vue +21 -21
- package/src/components/Icons/Audio/Delete.vue +15 -15
- package/src/components/Icons/Audio/Pause.vue +18 -18
- package/src/components/Icons/Audio/Play.vue +15 -15
- package/src/components/Icons/CalendarNotification.vue +126 -126
- package/src/components/Icons/Chair.vue +32 -32
- package/src/components/Icons/ChairNotification.vue +35 -35
- package/src/components/Icons/Circle.vue +66 -66
- package/src/components/Icons/FavIcon.vue +22 -22
- package/src/components/Icons/FilledCircle.vue +11 -11
- package/src/components/Icons/Group3.vue +46 -46
- package/src/components/Icons/Logo.vue +108 -0
- package/src/components/Icons/RingNotification.vue +54 -54
- package/src/components/Icons/SolidArrowRight.vue +14 -14
- package/src/components/Icons/calendar.vue +17 -17
- package/src/components/Icons/checkbox.vue +19 -19
- package/src/components/Icons/outlineChecked.vue +27 -27
- package/src/components/Icons/play.vue +5 -5
- package/src/components/Input/Input.css +187 -187
- package/src/components/Input/Input.vue +247 -247
- package/src/components/Laboratory/AppointmentCard/AppointmentCard.css +7 -7
- package/src/components/Laboratory/AppointmentCard/AppointmentCard.vue +116 -116
- package/src/components/Laboratory/ChatBoxImage/ChatBoxImage.vue +81 -81
- package/src/components/Laboratory/ChatMessage/ChatMessage.vue +113 -113
- package/src/components/Laboratory/ChatMessage/ChatMessageBadge.css +4 -4
- package/src/components/Laboratory/ChatMessage/ChatMessageBadge.vue +99 -99
- package/src/components/Laboratory/ChatNotification/ChatNotification.vue +130 -130
- package/src/components/Laboratory/DocumentCard/DocumentCard.css +3 -3
- package/src/components/Laboratory/DocumentCard/DocumentCard.vue +50 -50
- package/src/components/Laboratory/DocumentCard/DocumentCardItem.vue +53 -53
- package/src/components/Laboratory/InfoCard/InfoCard.vue +162 -162
- package/src/components/Laboratory/MainColumnsBar/MainColumnsBar.vue +102 -102
- package/src/components/Laboratory/ProgressCircle/ProgressCircle.vue +152 -152
- package/src/components/Laboratory/ProgressLinear/ProgressLinear.css +33 -33
- package/src/components/Laboratory/ProgressLinear/ProgressLinear.vue +75 -75
- package/src/components/Laboratory/SelectionColumnBar/SelectionColumnBar.vue +92 -92
- package/src/components/Laboratory/StatusNotification/StatusNotification.vue +49 -49
- package/src/components/Laboratory/TagLabel/TagLabel.vue +126 -126
- package/src/components/Laboratory/TagLabelGroup/TagLabelGroup.vue +97 -97
- package/src/components/Laboratory/TicketCard/TicketCard.css +3 -3
- package/src/components/Laboratory/TicketCard/TicketCard.vue +143 -143
- package/src/components/Laboratory/TimeLine/TimeLineEvent.css +18 -18
- package/src/components/Laboratory/TimeLine/TimeLineEvent.vue +119 -119
- package/src/components/Laboratory/TimeLine/Timeline.css +4 -4
- package/src/components/Laboratory/TimeLine/Timeline.vue +30 -30
- package/src/components/Loader/Loader.css +51 -51
- package/src/components/MaintenanceBanner/MaintenanceBanner.css +289 -0
- package/src/components/MaintenanceBanner/MaintenanceBanner.vue +127 -0
- package/src/components/MaintenanceBanner/MaintenanceIllustration.vue +54 -0
- package/src/components/Modal/Modal.css +5 -5
- package/src/components/Modal/Modal.vue +22 -22
- package/src/components/NotificationBubble/NotificationBubble.css +4 -4
- package/src/components/NotificationBubble/NotificationBubble.vue +90 -90
- package/src/components/OtpInput/OtpInput.css +39 -39
- package/src/components/OtpInput/OtpInput.vue +143 -143
- package/src/components/PhoneInput/PhoneInput.css +31 -31
- package/src/components/PhoneInput/PhoneInput.vue +113 -113
- package/src/components/Select/Select.css +150 -150
- package/src/components/Select/Select.vue +315 -315
- package/src/components/TextArea/TextArea.css +3 -3
- package/src/components/TextArea/TextArea.vue +126 -126
- package/src/components/TickBox/TickBox.css +49 -49
- package/src/components/TickBox/TickBox.vue +126 -126
- package/src/components/index.ts +26 -24
- package/src/constants/iconEnums.ts +3 -3
- package/src/i18n/i18n.ts +15 -15
- package/src/i18n/locales/de.json +30 -30
- package/src/i18n/locales/en.json +30 -30
- package/src/index.ts +34 -34
- package/src/main.ts +11 -11
- package/src/plugins/vuetify.ts +139 -131
- package/src/shims-vue.d.ts +10 -10
- package/src/stories/Accordion.stories.ts +650 -650
- package/src/stories/Audio.stories.ts +28 -28
- package/src/stories/Button.stories.ts +263 -263
- package/src/stories/CheckBox.stories.ts +348 -348
- package/src/stories/DateInput.stories.ts +53 -53
- package/src/stories/Dialog.stories.ts +147 -147
- package/src/stories/EditField.stories.ts +78 -78
- package/src/stories/IconBullet/IconBullet.stories.ts +201 -201
- package/src/stories/IconBullet/IconBulletList.stories.ts +275 -275
- package/src/stories/Input.stories.ts +351 -351
- package/src/stories/Laboratory/Cards/AppointmentCard/AppointmentCard.stories.ts +260 -260
- package/src/stories/Laboratory/Cards/DocumentCard/DocumentCard.stories.ts +176 -176
- package/src/stories/Laboratory/Cards/DocumentCard/DocumentCardItem.stories.ts +119 -119
- package/src/stories/Laboratory/Cards/InfoCard/InfoCard.stories.ts +320 -320
- package/src/stories/Laboratory/Cards/TicketCard/TicketCard.stories.ts +335 -335
- package/src/stories/Laboratory/Chat/ChatBoxImage.stories.ts +82 -82
- package/src/stories/Laboratory/Chat/ChatMessage.stories.ts +198 -198
- package/src/stories/Laboratory/Chat/ChatMessageBadge.stories.ts +204 -204
- package/src/stories/Laboratory/Chat/ChatNotification.stories.ts +144 -144
- package/src/stories/Laboratory/Chat/ProgressLinear.stories.ts +186 -186
- package/src/stories/Laboratory/Chat/StatusNotification.stories.ts +111 -111
- package/src/stories/Laboratory/MainColumnsBar.stories.ts +48 -48
- package/src/stories/Laboratory/ProgressCircle.stories.ts +261 -261
- package/src/stories/Laboratory/SelectionColumnBar.stories.ts +234 -234
- package/src/stories/Laboratory/TagLabel.stories.ts +418 -418
- package/src/stories/Laboratory/TagLabelGroup.stories.ts +234 -234
- package/src/stories/Laboratory/Timeline.stories.ts +403 -403
- package/src/stories/NotificationBubble.stories.ts +194 -194
- package/src/stories/OtpInput.stories.ts +100 -100
- package/src/stories/PhoneInput.stories.ts +52 -52
- package/src/stories/Select.stories.ts +419 -419
- package/src/stories/TextArea.stories.ts +112 -112
- package/src/stories/TickBox.stories.ts +294 -294
- package/src/stories/v-icon.stories.ts +91 -91
- package/src/utils/index.ts +106 -100
- package/src/vite-env.d.ts +1 -1
- package/tests/e2e/README.md +220 -220
- package/tests/e2e/accessibility.spec.ts +638 -638
- package/tests/e2e/accordion.spec.ts +42 -42
- package/tests/e2e/additional-components.spec.ts +437 -437
- package/tests/e2e/all-components.spec.ts +135 -135
- package/tests/e2e/appointment-card.spec.ts +816 -816
- package/tests/e2e/button-fixed.spec.ts +58 -58
- package/tests/e2e/button.spec.ts +76 -76
- package/tests/e2e/checkbox.spec.ts +50 -50
- package/tests/e2e/date-input.spec.ts +46 -46
- package/tests/e2e/debug.spec.ts +51 -51
- package/tests/e2e/dialog.spec.ts +58 -58
- package/tests/e2e/input.spec.ts +55 -55
- package/tests/e2e/laboratory-components.spec.ts +320 -320
- package/tests/e2e/otp-input.spec.ts +50 -50
- package/tests/e2e/select.spec.ts +52 -52
- package/tests/e2e/storybook-utils.ts +59 -59
- package/tests/e2e/test-basic.spec.ts +33 -33
- package/tests/e2e/visual-regression.spec.ts +350 -350
- package/tests/unit/components/Accordion/AccordionGroup.spec.ts.skip +342 -342
- package/tests/unit/components/Accordion/AccordionItem.spec.ts.skip +383 -383
- package/tests/unit/components/Appointment/Card/Actions.spec.ts +407 -407
- package/tests/unit/components/Appointment/Card/Card.spec.ts +485 -485
- package/tests/unit/components/Appointment/Card/Details.spec.ts +397 -397
- package/tests/unit/components/Audio/Audio.spec.ts +403 -403
- package/tests/unit/components/Audio/Waveform.spec.ts +483 -483
- package/tests/unit/components/Core/Button.spec.ts +336 -336
- package/tests/unit/components/Core/Checkbox.spec.ts +544 -544
- package/tests/unit/components/Core/DateInput.spec.ts +690 -690
- package/tests/unit/components/Core/Dialog.spec.ts +485 -485
- package/tests/unit/components/Core/EditField.spec.ts +782 -782
- package/tests/unit/components/Core/Input.spec.ts +512 -512
- package/tests/unit/components/Core/Modal.spec.ts +518 -518
- package/tests/unit/components/Core/NotificationBubble.spec.ts +606 -606
- package/tests/unit/components/Core/OtpInput.spec.ts +708 -708
- package/tests/unit/components/Core/PhoneInput.spec.ts +619 -619
- package/tests/unit/components/Core/Select.spec.ts +712 -712
- package/tests/unit/components/Core/TextArea.spec.ts +565 -565
- package/tests/unit/components/Core/TickBox.spec.ts +779 -779
- package/tests/unit/components/IconBullet/IconBullet.spec.ts +356 -356
- package/tests/unit/components/IconBullet/IconBulletList.spec.ts +371 -371
- package/tests/unit/components/Icons/Audio/CloudFailed.spec.ts +108 -108
- package/tests/unit/components/Icons/Audio/CloudSaved.spec.ts +149 -149
- package/tests/unit/components/Icons/Audio/Delete.spec.ts +158 -158
- package/tests/unit/components/Icons/Audio/Pause.spec.ts +208 -208
- package/tests/unit/components/Icons/Audio/Play.spec.ts +217 -217
- package/tests/unit/components/Icons/CalendarNotification.spec.ts +186 -186
- package/tests/unit/components/Icons/Chair.spec.ts +234 -234
- package/tests/unit/components/Icons/ChairNotification.spec.ts +311 -311
- package/tests/unit/components/Icons/Circle.spec.ts +255 -255
- package/tests/unit/components/Icons/FavIcon.spec.ts +251 -251
- package/tests/unit/components/Icons/FilledCircle.spec.ts +274 -274
- package/tests/unit/components/Icons/Group3.spec.ts +355 -355
- package/tests/unit/components/Icons/RingNotification.spec.ts +393 -393
- package/tests/unit/components/Icons/calendar.spec.ts +286 -286
- package/tests/unit/components/Icons/checkbox.spec.ts +315 -315
- package/tests/unit/components/Icons/outlineChecked.spec.ts +434 -434
- package/tests/unit/components/Icons/play.spec.ts +308 -308
- package/tests/unit/components/Laboratory/AppointmentCard.spec.ts +167 -167
- package/tests/unit/components/Laboratory/ChatBoxImage.spec.ts +179 -179
- package/tests/unit/components/Laboratory/ChatMessage.spec.ts +263 -263
- package/tests/unit/components/Laboratory/ChatMessageBadge.spec.ts +282 -282
- package/tests/unit/components/Laboratory/ChatNotification.spec.ts +256 -256
- package/tests/unit/components/Laboratory/DocumentCard.spec.ts +228 -228
- package/tests/unit/components/Laboratory/DocumentCardItem.spec.ts +236 -236
- package/tests/unit/components/Laboratory/InfoCard.spec.ts +308 -308
- package/tests/unit/components/Laboratory/MainColumnsBar.spec.ts +251 -251
- package/tests/unit/components/Laboratory/ProgressCircle.spec.ts +290 -290
- package/tests/unit/components/Laboratory/ProgressLinear.spec.ts +275 -275
- package/tests/unit/components/Laboratory/SelectionColumnBar.spec.ts +288 -288
- package/tests/unit/components/Laboratory/StatusNotification.spec.ts +296 -296
- package/tests/unit/components/Laboratory/TagLabel.spec.ts +353 -353
- package/tests/unit/components/Laboratory/TagLabelGroup.spec.ts +377 -377
- package/tests/unit/components/Laboratory/TicketCard.spec.ts +351 -351
- package/tests/unit/components/Laboratory/TimeLineEvent.spec.ts +381 -381
- package/tests/unit/components/Laboratory/Timeline.spec.ts +419 -419
- package/tests/unit/constants/iconEnums.spec.ts +39 -39
- package/tests/unit/i18n/i18n.spec.ts +88 -88
- package/tests/unit/plugins/vuetify.spec.ts +220 -220
- package/tests/unit/setup.ts +189 -189
- package/tests/unit/src/components/index.spec.ts.skip +192 -192
- package/tests/unit/src/index.spec.ts.skip +182 -182
- package/tests/unit/src/main.spec.ts +151 -151
- package/tsconfig.json +26 -26
- package/vite.config.ts +29 -29
- package/vitest.config.ts +83 -83
package/tests/e2e/README.md
CHANGED
|
@@ -1,221 +1,221 @@
|
|
|
1
|
-
# Playwright E2E Tests for WL Shared Components
|
|
2
|
-
|
|
3
|
-
This directory contains comprehensive end-to-end tests for all WL shared components using Playwright.
|
|
4
|
-
|
|
5
|
-
## Test Coverage
|
|
6
|
-
|
|
7
|
-
### Core Components
|
|
8
|
-
- **Button Component** (`button.spec.ts`)
|
|
9
|
-
- Default rendering and interactions
|
|
10
|
-
- Various button variants (outlined, text, elevated, tonal)
|
|
11
|
-
- Loading states and disabled states
|
|
12
|
-
- Different sizes and custom colors
|
|
13
|
-
- Keyboard navigation and accessibility
|
|
14
|
-
- Icon support (prepend/append)
|
|
15
|
-
|
|
16
|
-
- **Input Component** (`input.spec.ts`)
|
|
17
|
-
- Text input functionality
|
|
18
|
-
- Validation states (success, error, warning)
|
|
19
|
-
- Disabled state handling
|
|
20
|
-
- Icon support (prepend/append/inner)
|
|
21
|
-
- Search input functionality
|
|
22
|
-
- Hint text display
|
|
23
|
-
- Focus and keyboard interaction
|
|
24
|
-
|
|
25
|
-
- **Select Component** (`select.spec.ts`)
|
|
26
|
-
- Dropdown opening/closing
|
|
27
|
-
- Option selection
|
|
28
|
-
- Keyboard navigation
|
|
29
|
-
- Multiple selection (if supported)
|
|
30
|
-
- Search/filter functionality
|
|
31
|
-
- Clearable functionality
|
|
32
|
-
- Disabled states
|
|
33
|
-
- Accessibility attributes
|
|
34
|
-
|
|
35
|
-
- **Checkbox Component** (`checkbox.spec.ts`)
|
|
36
|
-
- Checking/unchecking functionality
|
|
37
|
-
- Keyboard interaction (Space key)
|
|
38
|
-
- Disabled state prevention
|
|
39
|
-
- Label interaction
|
|
40
|
-
- Visual state verification
|
|
41
|
-
- Indeterminate state (if supported)
|
|
42
|
-
- Custom styling variants
|
|
43
|
-
|
|
44
|
-
### Form Components
|
|
45
|
-
- **DateInput Component** (`date-input.spec.ts`)
|
|
46
|
-
- Date input field rendering
|
|
47
|
-
- Date picker functionality
|
|
48
|
-
- Calendar navigation
|
|
49
|
-
- Date format validation
|
|
50
|
-
- Min/max date restrictions
|
|
51
|
-
- Today button functionality
|
|
52
|
-
- Keyboard navigation
|
|
53
|
-
- Outside click closing
|
|
54
|
-
|
|
55
|
-
- **OTP Input Component** (`otp-input.spec.ts`)
|
|
56
|
-
- Multiple input field rendering
|
|
57
|
-
- Auto-focus on next field
|
|
58
|
-
- Backspace navigation
|
|
59
|
-
- Numeric input restriction
|
|
60
|
-
- Paste functionality for complete OTP
|
|
61
|
-
- Different OTP lengths (4, 6, 8 digits)
|
|
62
|
-
- Rapid input handling
|
|
63
|
-
- Focus management
|
|
64
|
-
|
|
65
|
-
- **TextArea Component** (`additional-components.spec.ts`)
|
|
66
|
-
- Multi-line text input
|
|
67
|
-
- Character count display
|
|
68
|
-
- Resize functionality
|
|
69
|
-
- Validation states
|
|
70
|
-
|
|
71
|
-
- **Phone Input Component** (`additional-components.spec.ts`)
|
|
72
|
-
- Country selector dropdown
|
|
73
|
-
- Phone number input validation
|
|
74
|
-
- Flag display
|
|
75
|
-
- International formatting
|
|
76
|
-
|
|
77
|
-
### UI Components
|
|
78
|
-
- **Accordion Component** (`accordion.spec.ts`)
|
|
79
|
-
- Multiple accordion items rendering
|
|
80
|
-
- Expand/collapse functionality
|
|
81
|
-
- Keyboard navigation (Enter/Space)
|
|
82
|
-
- Multiple items expanded simultaneously
|
|
83
|
-
- Accessibility attributes (aria-expanded)
|
|
84
|
-
|
|
85
|
-
- **Dialog/Modal Components** (`dialog.spec.ts`)
|
|
86
|
-
- Dialog opening/closing
|
|
87
|
-
- Content visibility
|
|
88
|
-
- Escape key closing
|
|
89
|
-
- Outside click closing
|
|
90
|
-
- Focus management
|
|
91
|
-
- Multiple dialogs handling
|
|
92
|
-
- Animations and transitions
|
|
93
|
-
|
|
94
|
-
### Laboratory Components (`laboratory-components.spec.ts`)
|
|
95
|
-
- **Card Components**
|
|
96
|
-
- Appointment Card
|
|
97
|
-
- Document Card
|
|
98
|
-
- Info Card
|
|
99
|
-
- Ticket Card
|
|
100
|
-
|
|
101
|
-
- **Chat Components**
|
|
102
|
-
- Chat Message
|
|
103
|
-
- Chat Notification
|
|
104
|
-
- Chat Box Image
|
|
105
|
-
- Chat Message Badge
|
|
106
|
-
|
|
107
|
-
- **Progress Components**
|
|
108
|
-
- Progress Circle
|
|
109
|
-
- Progress Linear
|
|
110
|
-
|
|
111
|
-
- **Navigation Components**
|
|
112
|
-
- Main Columns Bar
|
|
113
|
-
- Selection Column Bar
|
|
114
|
-
- Timeline
|
|
115
|
-
|
|
116
|
-
- **Status Components**
|
|
117
|
-
- Tag Label
|
|
118
|
-
- Tag Label Group
|
|
119
|
-
- Status Notification
|
|
120
|
-
|
|
121
|
-
### Additional Components (`additional-components.spec.ts`)
|
|
122
|
-
- **Audio Component**
|
|
123
|
-
- Audio controls
|
|
124
|
-
- Waveform display
|
|
125
|
-
- Play/pause functionality
|
|
126
|
-
|
|
127
|
-
- **Edit Field Component**
|
|
128
|
-
- Toggle between edit/display mode
|
|
129
|
-
- Save changes functionality
|
|
130
|
-
- Cancel editing
|
|
131
|
-
|
|
132
|
-
- **Notification Components**
|
|
133
|
-
- Notification Bubble
|
|
134
|
-
- Dismissible notifications
|
|
135
|
-
|
|
136
|
-
- **Icon Components**
|
|
137
|
-
- Various icon components
|
|
138
|
-
- Icon Bullet and Icon Bullet List
|
|
139
|
-
|
|
140
|
-
### Cross-Component Tests
|
|
141
|
-
- **Integration Tests**
|
|
142
|
-
- Components working together
|
|
143
|
-
- Independent state management
|
|
144
|
-
- Tab navigation across components
|
|
145
|
-
|
|
146
|
-
- **Performance Tests**
|
|
147
|
-
- Render time verification
|
|
148
|
-
- Rapid interaction handling
|
|
149
|
-
- Memory usage optimization
|
|
150
|
-
|
|
151
|
-
- **Accessibility Tests**
|
|
152
|
-
- ARIA attributes verification
|
|
153
|
-
- Keyboard navigation
|
|
154
|
-
- Focus management
|
|
155
|
-
- Screen reader compatibility
|
|
156
|
-
|
|
157
|
-
## Test Configuration
|
|
158
|
-
|
|
159
|
-
The tests are configured to run against Storybook at `http://localhost:7000` and include:
|
|
160
|
-
|
|
161
|
-
- **Multi-browser testing**: Chrome, Firefox, Safari, Mobile Chrome, Mobile Safari
|
|
162
|
-
- **Automatic screenshot capture** on failures
|
|
163
|
-
- **Trace recording** for debugging
|
|
164
|
-
- **Parallel execution** for faster test runs
|
|
165
|
-
- **Retry logic** for flaky tests
|
|
166
|
-
|
|
167
|
-
## Running Tests
|
|
168
|
-
|
|
169
|
-
```bash
|
|
170
|
-
# Run all tests
|
|
171
|
-
npm test
|
|
172
|
-
|
|
173
|
-
# Run tests in headed mode (visible browser)
|
|
174
|
-
npm run test:headed
|
|
175
|
-
|
|
176
|
-
# Run tests with UI mode
|
|
177
|
-
npm run test:ui
|
|
178
|
-
|
|
179
|
-
# View test report
|
|
180
|
-
npm run test:report
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
## Test Structure
|
|
184
|
-
|
|
185
|
-
Each test file follows a consistent pattern:
|
|
186
|
-
|
|
187
|
-
1. **Setup**: Navigate to the component's Storybook story
|
|
188
|
-
2. **Rendering Tests**: Verify component displays correctly
|
|
189
|
-
3. **Interaction Tests**: Test user interactions (click, type, keyboard)
|
|
190
|
-
4. **State Tests**: Verify component states (disabled, error, loading)
|
|
191
|
-
5. **Accessibility Tests**: Check ARIA attributes and keyboard navigation
|
|
192
|
-
6. **Edge Cases**: Test boundary conditions and error scenarios
|
|
193
|
-
|
|
194
|
-
## Coverage Statistics
|
|
195
|
-
|
|
196
|
-
This test suite provides comprehensive coverage of:
|
|
197
|
-
- ✅ 15+ Core UI Components
|
|
198
|
-
- ✅ 10+ Form Components
|
|
199
|
-
- ✅ 15+ Laboratory Components
|
|
200
|
-
- ✅ 5+ Specialized Components
|
|
201
|
-
- ✅ Integration scenarios
|
|
202
|
-
- ✅ Accessibility compliance
|
|
203
|
-
- ✅ Performance benchmarks
|
|
204
|
-
|
|
205
|
-
## Maintenance
|
|
206
|
-
|
|
207
|
-
Tests are designed to be maintainable and robust:
|
|
208
|
-
- Use of flexible selectors that work across different implementations
|
|
209
|
-
- Graceful handling of missing stories/components
|
|
210
|
-
- Clear test descriptions and error messages
|
|
211
|
-
- Modular structure for easy updates
|
|
212
|
-
|
|
213
|
-
## Contributing
|
|
214
|
-
|
|
215
|
-
When adding new components or modifying existing ones:
|
|
216
|
-
|
|
217
|
-
1. Add corresponding test cases to the appropriate spec file
|
|
218
|
-
2. Follow the established naming conventions
|
|
219
|
-
3. Include accessibility tests for new interactive elements
|
|
220
|
-
4. Test both happy path and error scenarios
|
|
1
|
+
# Playwright E2E Tests for WL Shared Components
|
|
2
|
+
|
|
3
|
+
This directory contains comprehensive end-to-end tests for all WL shared components using Playwright.
|
|
4
|
+
|
|
5
|
+
## Test Coverage
|
|
6
|
+
|
|
7
|
+
### Core Components
|
|
8
|
+
- **Button Component** (`button.spec.ts`)
|
|
9
|
+
- Default rendering and interactions
|
|
10
|
+
- Various button variants (outlined, text, elevated, tonal)
|
|
11
|
+
- Loading states and disabled states
|
|
12
|
+
- Different sizes and custom colors
|
|
13
|
+
- Keyboard navigation and accessibility
|
|
14
|
+
- Icon support (prepend/append)
|
|
15
|
+
|
|
16
|
+
- **Input Component** (`input.spec.ts`)
|
|
17
|
+
- Text input functionality
|
|
18
|
+
- Validation states (success, error, warning)
|
|
19
|
+
- Disabled state handling
|
|
20
|
+
- Icon support (prepend/append/inner)
|
|
21
|
+
- Search input functionality
|
|
22
|
+
- Hint text display
|
|
23
|
+
- Focus and keyboard interaction
|
|
24
|
+
|
|
25
|
+
- **Select Component** (`select.spec.ts`)
|
|
26
|
+
- Dropdown opening/closing
|
|
27
|
+
- Option selection
|
|
28
|
+
- Keyboard navigation
|
|
29
|
+
- Multiple selection (if supported)
|
|
30
|
+
- Search/filter functionality
|
|
31
|
+
- Clearable functionality
|
|
32
|
+
- Disabled states
|
|
33
|
+
- Accessibility attributes
|
|
34
|
+
|
|
35
|
+
- **Checkbox Component** (`checkbox.spec.ts`)
|
|
36
|
+
- Checking/unchecking functionality
|
|
37
|
+
- Keyboard interaction (Space key)
|
|
38
|
+
- Disabled state prevention
|
|
39
|
+
- Label interaction
|
|
40
|
+
- Visual state verification
|
|
41
|
+
- Indeterminate state (if supported)
|
|
42
|
+
- Custom styling variants
|
|
43
|
+
|
|
44
|
+
### Form Components
|
|
45
|
+
- **DateInput Component** (`date-input.spec.ts`)
|
|
46
|
+
- Date input field rendering
|
|
47
|
+
- Date picker functionality
|
|
48
|
+
- Calendar navigation
|
|
49
|
+
- Date format validation
|
|
50
|
+
- Min/max date restrictions
|
|
51
|
+
- Today button functionality
|
|
52
|
+
- Keyboard navigation
|
|
53
|
+
- Outside click closing
|
|
54
|
+
|
|
55
|
+
- **OTP Input Component** (`otp-input.spec.ts`)
|
|
56
|
+
- Multiple input field rendering
|
|
57
|
+
- Auto-focus on next field
|
|
58
|
+
- Backspace navigation
|
|
59
|
+
- Numeric input restriction
|
|
60
|
+
- Paste functionality for complete OTP
|
|
61
|
+
- Different OTP lengths (4, 6, 8 digits)
|
|
62
|
+
- Rapid input handling
|
|
63
|
+
- Focus management
|
|
64
|
+
|
|
65
|
+
- **TextArea Component** (`additional-components.spec.ts`)
|
|
66
|
+
- Multi-line text input
|
|
67
|
+
- Character count display
|
|
68
|
+
- Resize functionality
|
|
69
|
+
- Validation states
|
|
70
|
+
|
|
71
|
+
- **Phone Input Component** (`additional-components.spec.ts`)
|
|
72
|
+
- Country selector dropdown
|
|
73
|
+
- Phone number input validation
|
|
74
|
+
- Flag display
|
|
75
|
+
- International formatting
|
|
76
|
+
|
|
77
|
+
### UI Components
|
|
78
|
+
- **Accordion Component** (`accordion.spec.ts`)
|
|
79
|
+
- Multiple accordion items rendering
|
|
80
|
+
- Expand/collapse functionality
|
|
81
|
+
- Keyboard navigation (Enter/Space)
|
|
82
|
+
- Multiple items expanded simultaneously
|
|
83
|
+
- Accessibility attributes (aria-expanded)
|
|
84
|
+
|
|
85
|
+
- **Dialog/Modal Components** (`dialog.spec.ts`)
|
|
86
|
+
- Dialog opening/closing
|
|
87
|
+
- Content visibility
|
|
88
|
+
- Escape key closing
|
|
89
|
+
- Outside click closing
|
|
90
|
+
- Focus management
|
|
91
|
+
- Multiple dialogs handling
|
|
92
|
+
- Animations and transitions
|
|
93
|
+
|
|
94
|
+
### Laboratory Components (`laboratory-components.spec.ts`)
|
|
95
|
+
- **Card Components**
|
|
96
|
+
- Appointment Card
|
|
97
|
+
- Document Card
|
|
98
|
+
- Info Card
|
|
99
|
+
- Ticket Card
|
|
100
|
+
|
|
101
|
+
- **Chat Components**
|
|
102
|
+
- Chat Message
|
|
103
|
+
- Chat Notification
|
|
104
|
+
- Chat Box Image
|
|
105
|
+
- Chat Message Badge
|
|
106
|
+
|
|
107
|
+
- **Progress Components**
|
|
108
|
+
- Progress Circle
|
|
109
|
+
- Progress Linear
|
|
110
|
+
|
|
111
|
+
- **Navigation Components**
|
|
112
|
+
- Main Columns Bar
|
|
113
|
+
- Selection Column Bar
|
|
114
|
+
- Timeline
|
|
115
|
+
|
|
116
|
+
- **Status Components**
|
|
117
|
+
- Tag Label
|
|
118
|
+
- Tag Label Group
|
|
119
|
+
- Status Notification
|
|
120
|
+
|
|
121
|
+
### Additional Components (`additional-components.spec.ts`)
|
|
122
|
+
- **Audio Component**
|
|
123
|
+
- Audio controls
|
|
124
|
+
- Waveform display
|
|
125
|
+
- Play/pause functionality
|
|
126
|
+
|
|
127
|
+
- **Edit Field Component**
|
|
128
|
+
- Toggle between edit/display mode
|
|
129
|
+
- Save changes functionality
|
|
130
|
+
- Cancel editing
|
|
131
|
+
|
|
132
|
+
- **Notification Components**
|
|
133
|
+
- Notification Bubble
|
|
134
|
+
- Dismissible notifications
|
|
135
|
+
|
|
136
|
+
- **Icon Components**
|
|
137
|
+
- Various icon components
|
|
138
|
+
- Icon Bullet and Icon Bullet List
|
|
139
|
+
|
|
140
|
+
### Cross-Component Tests
|
|
141
|
+
- **Integration Tests**
|
|
142
|
+
- Components working together
|
|
143
|
+
- Independent state management
|
|
144
|
+
- Tab navigation across components
|
|
145
|
+
|
|
146
|
+
- **Performance Tests**
|
|
147
|
+
- Render time verification
|
|
148
|
+
- Rapid interaction handling
|
|
149
|
+
- Memory usage optimization
|
|
150
|
+
|
|
151
|
+
- **Accessibility Tests**
|
|
152
|
+
- ARIA attributes verification
|
|
153
|
+
- Keyboard navigation
|
|
154
|
+
- Focus management
|
|
155
|
+
- Screen reader compatibility
|
|
156
|
+
|
|
157
|
+
## Test Configuration
|
|
158
|
+
|
|
159
|
+
The tests are configured to run against Storybook at `http://localhost:7000` and include:
|
|
160
|
+
|
|
161
|
+
- **Multi-browser testing**: Chrome, Firefox, Safari, Mobile Chrome, Mobile Safari
|
|
162
|
+
- **Automatic screenshot capture** on failures
|
|
163
|
+
- **Trace recording** for debugging
|
|
164
|
+
- **Parallel execution** for faster test runs
|
|
165
|
+
- **Retry logic** for flaky tests
|
|
166
|
+
|
|
167
|
+
## Running Tests
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# Run all tests
|
|
171
|
+
npm test
|
|
172
|
+
|
|
173
|
+
# Run tests in headed mode (visible browser)
|
|
174
|
+
npm run test:headed
|
|
175
|
+
|
|
176
|
+
# Run tests with UI mode
|
|
177
|
+
npm run test:ui
|
|
178
|
+
|
|
179
|
+
# View test report
|
|
180
|
+
npm run test:report
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Test Structure
|
|
184
|
+
|
|
185
|
+
Each test file follows a consistent pattern:
|
|
186
|
+
|
|
187
|
+
1. **Setup**: Navigate to the component's Storybook story
|
|
188
|
+
2. **Rendering Tests**: Verify component displays correctly
|
|
189
|
+
3. **Interaction Tests**: Test user interactions (click, type, keyboard)
|
|
190
|
+
4. **State Tests**: Verify component states (disabled, error, loading)
|
|
191
|
+
5. **Accessibility Tests**: Check ARIA attributes and keyboard navigation
|
|
192
|
+
6. **Edge Cases**: Test boundary conditions and error scenarios
|
|
193
|
+
|
|
194
|
+
## Coverage Statistics
|
|
195
|
+
|
|
196
|
+
This test suite provides comprehensive coverage of:
|
|
197
|
+
- ✅ 15+ Core UI Components
|
|
198
|
+
- ✅ 10+ Form Components
|
|
199
|
+
- ✅ 15+ Laboratory Components
|
|
200
|
+
- ✅ 5+ Specialized Components
|
|
201
|
+
- ✅ Integration scenarios
|
|
202
|
+
- ✅ Accessibility compliance
|
|
203
|
+
- ✅ Performance benchmarks
|
|
204
|
+
|
|
205
|
+
## Maintenance
|
|
206
|
+
|
|
207
|
+
Tests are designed to be maintainable and robust:
|
|
208
|
+
- Use of flexible selectors that work across different implementations
|
|
209
|
+
- Graceful handling of missing stories/components
|
|
210
|
+
- Clear test descriptions and error messages
|
|
211
|
+
- Modular structure for easy updates
|
|
212
|
+
|
|
213
|
+
## Contributing
|
|
214
|
+
|
|
215
|
+
When adding new components or modifying existing ones:
|
|
216
|
+
|
|
217
|
+
1. Add corresponding test cases to the appropriate spec file
|
|
218
|
+
2. Follow the established naming conventions
|
|
219
|
+
3. Include accessibility tests for new interactive elements
|
|
220
|
+
4. Test both happy path and error scenarios
|
|
221
221
|
5. Verify tests pass across all configured browsers
|