Repository navigation
Commit 4c5609b
committed
ci: run the test suite against React 19 (#789)
CI type-checks React 19 but has never executed a test against it: the
react matrix exists only on the type-check job, and the test job runs the
lockfile's React 18. This adds react 18/19 as a test-job dimension, so the
suite runs on 19 before any src/ change lands for the React 19 foundation.
@testing-library/react moves 14 -> 16, with @testing-library/dom as a new
direct dependency. This is forced rather than opportunistic: RTL 14 declares
React ^18 only, so the 19 leg cannot run without it. The lockfile shrinks
because RTL 14's nested @testing-library/dom collapses into the top-level
install; no packages are added.
The React 18 legs keep their existing job names, so main's required status
checks keep matching and no admin change is needed. Only the 19 legs get a
suffix, which also means a React 19 failure does not gate a merge while 19
support is still being built.
A guard step after the artifact overlay asserts the installed React matches
the matrix leg. Without it the dimension is decorative: the only behavioural
difference between the legs is one skipped test, so a 19 leg that silently
ran 18 would pass.
That one test is skipped on 19 only, tracked in #793: in suspense mode,
swapping the observable resumes with the previous observable's value on
19.2.8 while passing on 18.2.0, deterministic across three runs each.
Emulator jobs go from two to four, which doubles per-PR exposure to the
#776 flake.
Refs #7891 parent e7b18c2 commit 4c5609b
5 files changed
Lines changed: 71 additions & 199 deletions
File tree
- .github/workflows
- test
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
55 | 56 | | |
56 | | - | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
57 | 63 | | |
58 | 64 | | |
59 | 65 | | |
| |||
67 | 73 | | |
68 | 74 | | |
69 | 75 | | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
70 | 84 | | |
71 | 85 | | |
72 | 86 | | |
| |||
86 | 100 | | |
87 | 101 | | |
88 | 102 | | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
89 | 120 | | |
90 | 121 | | |
91 | 122 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments