Commit e68d530
ci: run Cypress against Chrome, Firefox, and Edge (#215)
* ci: run Cypress against Chrome, Firefox, and Edge
Uncomments Firefox and adds Edge to the browser matrix, expanding
coverage from 2 matrix jobs to 6 (3 browsers × 2 viewports).
Also fixes artifact name collision: the hardcoded "videos" name would
cause upload-artifact@v4 to fail when multiple matrix jobs ran in
parallel; now each job uploads to a unique name using browser + job index.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: make Cypress tests pass in Firefox
Two root causes:
1. Firefox doesn't auto-download files — it shows a Save dialog unless
browser preferences are configured. Add a before:browser:launch hook
in cypress.config.js that sets the Firefox download prefs to save
directly to config.downloadsFolder. Fixes Menu CSV timestamp test and
TemplateRoundTrip custom-column test.
2. In Firefox, cy.visit() causes the app to call /auth, which can issue a
new anonymous-user token and overwrite __session with a different UID
than the board owner. PATCH then fails with 403. Fix by capturing the
owner's __session cookie via cy.getCookie() before the page visit and
passing it explicitly as a Cookie header in the PATCH request.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: resolve Firefox-specific Cypress failures in multi-browser CI
- Suppress Firefox's "NetworkError when attempting to fetch resource"
uncaught exception, which fires for fetch calls aborted by navigation
(Chrome drops these silently; they are not real test failures)
- Delete stale download files before triggering a second download to the
same path: Firefox deduplicates filenames (e.g. file (1).csv) rather
than overwriting, so cy.readFile was always reading the old content
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: restore online state after each ConnectionLost test in Firefox
Firefox sets navigator.onLine = false when the offline event is dispatched
programmatically and does not reset it on page navigation. Without cleanup,
Firebase auth fails in subsequent beforeEach / after hooks with
auth/network-request-failed.
Added afterEach to dispatch 'online', guarded the after hook the same way,
and extended the uncaught:exception handler to suppress Firebase auth errors
that escape during simulated-offline browser state.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* test: wait for card to exist after creation in Card before hook
Without this assertion the before hook completes as soon as the Enter
keystroke fires, before the async createCard API call resolves. Any
transient failure in card creation then cascades silently into all 5
tests failing with 'never found [data-name=card]:visible'.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent 8fd972a commit e68d530
8 files changed
Lines changed: 70 additions & 17 deletions
File tree
- .github/workflows
- cypress
- e2e
- support
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
| 41 | + | |
41 | 42 | | |
42 | 43 | | |
43 | 44 | | |
| |||
61 | 62 | | |
62 | 63 | | |
63 | 64 | | |
64 | | - | |
| 65 | + | |
65 | 66 | | |
66 | 67 | | |
67 | 68 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
8 | 25 | | |
9 | 26 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
23 | 31 | | |
24 | 32 | | |
25 | 33 | | |
| |||
34 | 42 | | |
35 | 43 | | |
36 | 44 | | |
| 45 | + | |
37 | 46 | | |
38 | 47 | | |
39 | 48 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
183 | 183 | | |
184 | 184 | | |
185 | 185 | | |
| 186 | + | |
| 187 | + | |
186 | 188 | | |
187 | 189 | | |
188 | 190 | | |
| |||
191 | 193 | | |
192 | 194 | | |
193 | 195 | | |
| 196 | + | |
| 197 | + | |
194 | 198 | | |
195 | 199 | | |
196 | 200 | | |
197 | | - | |
198 | | - | |
199 | | - | |
200 | | - | |
| 201 | + | |
201 | 202 | | |
202 | 203 | | |
203 | 204 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
41 | 45 | | |
42 | 46 | | |
43 | 47 | | |
44 | 48 | | |
45 | 49 | | |
46 | 50 | | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
56 | 63 | | |
57 | 64 | | |
58 | 65 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
276 | 276 | | |
277 | 277 | | |
278 | 278 | | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
279 | 282 | | |
280 | 283 | | |
281 | | - | |
282 | | - | |
283 | 284 | | |
284 | 285 | | |
285 | 286 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
1 | 17 | | |
2 | 18 | | |
3 | 19 | | |
| |||
0 commit comments