Test Suites & Configurations
Organize tests with hooks, write configurations, target multiple browser projects, and manage parallel runs.
Modules
9 ModulesModule 1: Config Deep Dive
Deconstruct testDir, timeouts, assertion limits, process.env variables, test artifacts captures, webServer setups, and forbidOnly rules.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Define config baseline rules defineConfigtimeout | Intermediate | 20 | Start Track | |
| Configuring assertion timeout thresholds expect.timeoutassertions | Intermediate | 20 | Start Track | |
| Load configs from environment env process.envvariables | Intermediate | 20 | Start Track | |
| Auto-capture screenshots videos traces trace: 'retain-on-failure'use options | Intermediate | 20 | Start Track | |
| Configuring dev servers webServer webServerbaseURL | Intermediate | 20 | Start Track | |
| Prevent commit test.only CI errors forbidOnlyCI checks | Intermediate | 20 | Start Track |
Module 2: Mobile Emulation
Emulate viewports, user agents, GPS coordinates, dark/light theme schemes, permissions, and network status.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Mobile Device Emulation viewport devices['Pixel 5']viewport | Advanced | 30 | Start Track | |
| Enabling isMobile hasTouch options isMobile: truehasTouch: true | Advanced | 30 | Start Track | |
| Set geolocation credentials contexts geolocationpermissions | Advanced | 30 | Start Track | |
| Color scheme dark light emulations colorScheme: 'dark'media | Advanced | 30 | Start Track |
Module 3: Visual Captures
Capture viewport screenshot, capture full scrollable pages, locate element snapshots, and save failures video files.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Capture Viewport Screenshot PNG page.screenshotpng | Intermediate | 20 | Start Track | |
| Capture full scrollable page snapshot fullPage: truescreenshots | Intermediate | 20 | Start Track | |
| Capture element screenshot selector locator.screenshotelement screenshot | Intermediate | 20 | Start Track | |
| Record video profiles on failures use: { video: 'on' }videos | Intermediate | 20 | Start Track |
Module 4: Multi-Browser
Set browser engine targets, configure channels, launch specific browser targets, and conditionally skip specs.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Configure browser projects matrix projectsbrowsers | Intermediate | 20 | Start Track | |
| Select runner browser projects CLI --projectCLI projects | Intermediate | 20 | Start Track | |
| Skip tests conditionally on browsers test.skipbrowserName | Intermediate | 20 | Start Track |
Module 5: Tagging & Filters
Append tag labels to titles, run tests by tags, skip/exclude suites, and annotate broken test files.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Tagging test suites @tag labels @tagtest annotations | Basic | 10 | Start Track | |
| Run tests matching tag search grep --grepCLI tags | Basic | 10 | Start Track | |
| Mark broken suites test.fixme annotation test.fixmebroken tests | Basic | 10 | Start Track |
Module 6: JS Page Execution
Evaluate browser-side script loops, pass arguments to page evaluations, add init scripts, and fetch storage states.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Execute browser Javascript evaluate page.evaluatejavascript execution | Intermediate | 20 | Start Track | |
| Pass arguments to page evaluations page.evaluatearguments | Intermediate | 20 | Start Track | |
| Inject scripts on page load initialization page.addInitScriptinit scripts | Intermediate | 20 | Start Track | |
| Access localStorage and sessionStorage fields localStoragesessionState | Intermediate | 20 | Start Track |
Module 7: Parallel & Sharding
Configure parallel worker processes, prevent race conditions, shard test suites, and merge test report files.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Enable fullyParallel test threads fullyParallel: trueworkers | Advanced | 30 | Start Track | |
| Shard test suites parallel CI runners --shardCI sharding | Advanced | 30 | Start Track |
Module 8: Scale & Architecture
Structure folder files, export imports using barrel indexes, and config environments extensions.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Organize tests by domain features folder structuresdomain files | Advanced | 30 | Start Track | |
| Export imports using barrel index files barrel indeximports | Advanced | 30 | Start Track |
Module 9: Test Data Management
Generate fake data profiles, load dotenv configurations, seed database state, and clean up test data.
| Status | Drill Title | Difficulty | Points | Action |
|---|---|---|---|---|
| Generate fake test data via Faker faker-jsdynamic user | Advanced | 30 | Start Track | |
| Seed database state before test runs beforeEach seedingdatabase resets | Advanced | 30 | Start Track |