Skip to content

Commit 3876709

Browse files
authored
feat(cc-widgets): Add multi-party conference E2E suites for SET_7 and SET_8 (#624)
1 parent 2961cf0 commit 3876709

25 files changed

Lines changed: 2280 additions & 416 deletions

playwright.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const dummyAudioPath = path.resolve(__dirname, './playwright/wav/dummyAudio.wav'
99

1010
export default defineConfig({
1111
testDir: './playwright',
12-
timeout: 180000,
12+
timeout: 220000,
1313
webServer: {
1414
command: 'yarn workspace samples-cc-react-app serve',
1515
url: 'http://localhost:3000',

playwright/README.md

Lines changed: 67 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@ playwright/
1111
│ ├── task-list-multi-session-tests.spec.ts # Task list and multi-session orchestration
1212
│ ├── station-login-user-state-tests.spec.ts # Station login and user state orchestration
1313
│ ├── basic-advanced-task-controls-tests.spec.ts # Basic and advanced task controls orchestration
14-
│ └── advanced-task-controls-tests.spec.ts # Advanced task controls orchestration
14+
│ ├── advanced-task-controls-tests.spec.ts # Advanced task controls orchestration
15+
│ ├── dial-number-tests.spec.ts # Dial number task control orchestration
16+
│ ├── multiparty-conference-set-7-tests.spec.ts # Multiparty conference set 7 orchestration
17+
│ ├── multiparty-conference-set-8-tests.spec.ts # Multiparty conference set 8 orchestration
18+
│ └── multiparty-conference-set-9-tests.spec.ts # Multiparty conference set 9 orchestration
1519
├── tests/ # Individual test implementations
1620
├── Utils/ # Utility functions
1721
├── test-data.ts # **CENTRAL CONFIG** - Test data & suite mapping
@@ -29,23 +33,49 @@ playwright/
2933
- ✅ Positions browser windows automatically
3034
- ✅ Maps test suites to user sets
3135

32-
| Set | Focus | Port | Suite File |
33-
| --------- | --------------------------------- | ---- | -------------------------------------------- |
34-
| **SET_1** | Digital incoming tasks & controls | 9221 | `digital-incoming-task-tests.spec.ts` |
35-
| **SET_2** | Task lists & multi-session | 9222 | `task-list-multi-session-tests.spec.ts` |
36-
| **SET_3** | Authentication & user management | 9223 | `station-login-user-state-tests.spec.ts` |
37-
| **SET_4** | Task controls & combinations | 9224 | `basic-advanced-task-controls-tests.spec.ts` |
38-
| **SET_5** | Advanced task operations | 9225 | `advanced-task-controls-tests.spec.ts` |
36+
| Set | Focus | Port | Suite File |
37+
| --------- | ---------------------------------- | ---- | -------------------------------------------- |
38+
| **SET_1** | Digital incoming tasks & controls | 9221 | `digital-incoming-task-tests.spec.ts` |
39+
| **SET_2** | Task lists & multi-session | 9222 | `task-list-multi-session-tests.spec.ts` |
40+
| **SET_3** | Authentication & user management | 9223 | `station-login-user-state-tests.spec.ts` |
41+
| **SET_4** | Task controls & combinations | 9224 | `basic-advanced-task-controls-tests.spec.ts` |
42+
| **SET_5** | Advanced task operations | 9225 | `advanced-task-controls-tests.spec.ts` |
43+
| **SET_6** | Dial number scenarios | 9226 | `dial-number-tests.spec.ts` |
44+
| **SET_7** | Multiparty conference (team 25-28) | 9227 | `multiparty-conference-set-7-tests.spec.ts` |
45+
| **SET_8** | Multiparty conference (team 29-32) | 9228 | `multiparty-conference-set-8-tests.spec.ts` |
46+
| **SET_9** | Multiparty conference (team 33-36) | 9229 | `multiparty-conference-set-9-tests.spec.ts` |
3947

4048
### Where to Add New Tests?
4149

42-
| Test Type | Use Set | Why |
43-
| ---------------------------- | ------- | --------------------------- |
44-
| Digital channels tasks | SET_1 | Digital channels configured |
45-
| Task list operations | SET_2 | Task list focus |
46-
| Authentication/User states | SET_3 | User management |
47-
| Basic/Advanced task controls | SET_4 | Task control operations |
48-
| Complex advanced scenarios | SET_5 | Advanced operations |
50+
| Test Type | Use Set | Why |
51+
| ---------------------------- | --------- | --------------------------- |
52+
| Digital channels tasks | SET_1 | Digital channels configured |
53+
| Task list operations | SET_2 | Task list focus |
54+
| Authentication/User states | SET_3 | User management |
55+
| Basic/Advanced task controls | SET_4 | Task control operations |
56+
| Complex advanced scenarios | SET_5 | Advanced operations |
57+
| Dial number scenarios | SET_6 | Dial number flows |
58+
| Multiparty conference | SET_7/8/9 | 4-agent conference coverage |
59+
60+
## Multiparty Conference Consolidation
61+
62+
To reduce runtime and repeated call initialization, conference scenarios are consolidated into combined tests while preserving scenario IDs in test names.
63+
64+
- `SET_7` (`playwright/tests/multiparty-conference-set-7-test.spec.ts`)
65+
- Combined: `CTS-MPC-01+02`, `CTS-MPC-03+04`, `CTS-MPC-07+09+10`
66+
- Standalone: `CTS-MPC-05`, `CTS-MPC-06`, `CTS-SW-04`
67+
- Combined: `CTS-SW-02+03`
68+
- Skipped: `CTS-MPC-08` (>4 agents)
69+
- `SET_8` (`playwright/tests/multiparty-conference-set-8-test.spec.ts`)
70+
- Combined: `CTS-TC-09+10`, `CTS-TC-11+13`, `CTS-TC-14+15`
71+
- Standalone: `CTS-TC-16`, `CTS-SW-07`
72+
- Skipped: `CTS-TC-12` (feature-flag gated), `CTS-TC-17` (>4 agents), `CTS-TC-18` (EPDN)
73+
- `SET_9` (`playwright/tests/multiparty-conference-set-9-test.spec.ts`)
74+
- Combined: `CTS-TC-01+02+03`, `CTS-TC-04+05`
75+
- Standalone: `CTS-TC-06`, `CTS-TC-07`, `CTS-TC-08`
76+
- Split: `CTS-TC-06` and `CTS-TC-07` run as separate tests (queue routing won't re-route to RONA'd agent in same session)
77+
- Combined: `CTS-SW-05+06`
78+
- Skipped: `CTS-SW-01` (EP_DN), `CTS-SW-08` (>4 agents)
4979

5080
## 🧪 Adding New Tests
5181

@@ -139,7 +169,7 @@ test.describe('My New Feature Tests', createMyTests());
139169
| Module | Key Functions |
140170
| ------------------- | ----------------------------------------------------------- |
141171
| `incomingTaskUtils` | `createChatTask()`, `acceptIncomingTask()`, `endChatTask()` |
142-
| `taskControlUtils` | `holdTask()`, `resumeTask()`, `endTask()` |
172+
| `taskControlUtils` | `holdCallToggle()`, `recordCallToggle()`, `endTask()` |
143173
| `userStateUtils` | `changeUserState()`, `verifyCurrentState()` |
144174
| `stationLoginUtils` | `telephonyLogin()`, `stationLogout()` |
145175

@@ -165,11 +195,21 @@ PW_CHAT_URL=https://your-chat-url
165195
PW_SANDBOX=your-sandbox-name
166196
PW_ENTRY_POINT1=entry-point-1
167197
PW_ENTRY_POINT2=entry-point-2
168-
# ... PW_ENTRY_POINT3, 4, 5
198+
# ... PW_ENTRY_POINT3 ... PW_ENTRY_POINT9
169199
```
170200

171201
Test data is automatically handled by TestManager based on the running test set.
172202

203+
OAuth setup behavior (`playwright/global.setup.ts`):
204+
205+
- expands `USER_SETS` into set-scoped env keys
206+
- builds OAuth set groups dynamically from `USER_SETS` (chunk size `2`)
207+
- runs one parallel OAuth worker per generated group
208+
- each group uses `OAUTH_BATCH_SIZE=4` internally
209+
- with current 9 sets this resolves to 5 groups: `[SET_1,SET_2]`, `[SET_3,SET_4]`, `[SET_5,SET_6]`, `[SET_7,SET_8]`, `[SET_9]`
210+
- optionally collects dial-number token
211+
- writes all token/env updates in one final upsert pass
212+
173213
## 🚀 Running Tests
174214

175215
```bash
@@ -182,16 +222,24 @@ yarn test:e2e suites/task-list-multi-session-tests.spec.ts
182222
yarn test:e2e suites/station-login-user-state-tests.spec.ts
183223
yarn test:e2e suites/basic-advanced-task-controls-tests.spec.ts
184224
yarn test:e2e suites/advanced-task-controls-tests.spec.ts
225+
yarn test:e2e suites/dial-number-tests.spec.ts
226+
yarn test:e2e suites/multiparty-conference-set-7-tests.spec.ts
227+
yarn test:e2e suites/multiparty-conference-set-8-tests.spec.ts
228+
yarn test:e2e suites/multiparty-conference-set-9-tests.spec.ts
185229

186230
# Run specific test sets (projects) - names match USER_SETS keys
187231
yarn test:e2e --project=SET_1 # Digital incoming tasks
188232
yarn test:e2e --project=SET_2 # Task list & multi-session
189233
yarn test:e2e --project=SET_3 # Station login & user state
190234
yarn test:e2e --project=SET_4 # Basic & advanced task controls
191235
yarn test:e2e --project=SET_5 # Advanced task controls
192-
# yarn test:e2e --project=SET_6 # Your new set (auto-available)
236+
yarn test:e2e --project=SET_6 # Dial number scenarios
237+
yarn test:e2e --project=SET_7 # Multiparty conference (team 25-28)
238+
yarn test:e2e --project=SET_8 # Multiparty conference (team 29-32)
239+
yarn test:e2e --project=SET_9 # Multiparty conference (team 33-36)
193240

194241
# Development & debugging
242+
yarn playwright test --config=playwright.config.ts --project="OAuth: Get Access Token" # Run OAuth setup only
195243
yarn test:e2e --ui # UI mode
196244
yarn test:e2e --debug # Debug mode
197245
yarn test:e2e --headed # Run with browser visible
@@ -221,7 +269,7 @@ yarn test:e2e --headed # Run with browser visible
221269
**Common Issues:**
222270

223271
- Browser launch fails → Check Chrome and ports 9221+ (auto-assigned)
224-
- Auth errors → Verify OAuth in `global.setup.ts`
272+
- Auth errors → Verify OAuth in `global.setup.ts` and confirm `OAUTH_BATCH_SIZE`/credentials are valid
225273
- Widget timeouts → Increase `WIDGET_INIT_TIMEOUT`
226274
- Test conflicts → Ports/positions are auto-managed per `USER_SETS`
227275
- New set not appearing → Check `TEST_SUITE` property in `test-data.ts`

0 commit comments

Comments
 (0)