Skip to content

Commit

Permalink
Test against multiple versions of React
Browse files Browse the repository at this point in the history
  • Loading branch information
wojtekmaj committed Jan 26, 2024
1 parent b31bd9c commit e8536fa
Show file tree
Hide file tree
Showing 8 changed files with 129 additions and 15 deletions.
9 changes: 5 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ concurrency:
env:
FORCE_COLOR: 2
HUSKY: 0
NODE: 20
NODE_VERSION: 20

jobs:
size:
Expand All @@ -36,7 +36,7 @@ jobs:
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE }}
node-version: ${{ env.NODE_VERSION }}

- name: Enable Corepack
run: corepack enable
Expand All @@ -48,11 +48,12 @@ jobs:
run: yarn --cwd packages/renderer run size

test:
name: Run tests (Node.js ${{ matrix.node_version }})
name: Run tests (Node.js ${{ matrix.node_version }}; React ${{ matrix.react_version }})
runs-on: ubuntu-latest
strategy:
matrix:
node_version: [18, 20]
react_version: [16, 17, 18]

steps:
- name: Checkout
Expand Down Expand Up @@ -80,4 +81,4 @@ jobs:
run: yarn --immutable

- name: Run tests
run: yarn test
run: REACT_VERSION=${{ matrix.react_version }} yarn test
9 changes: 5 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,16 @@ concurrency:
env:
FORCE_COLOR: 2
HUSKY: 0
NODE: 20
NODE_VERSION: 20

jobs:
test:
name: Run tests (Node.js ${{ matrix.node_version }})
name: Run tests (Node.js ${{ matrix.node_version }}; React ${{ matrix.react_version }})
runs-on: ubuntu-latest
strategy:
matrix:
node_version: [18, 20]
react_version: [16, 17, 18]

steps:
- name: Checkout
Expand Down Expand Up @@ -48,7 +49,7 @@ jobs:
run: yarn --immutable

- name: Run tests
run: yarn test
run: REACT_VERSION=${{ matrix.react_version }} yarn test

release:
# Prevents this action from running on forks
Expand Down Expand Up @@ -76,7 +77,7 @@ jobs:
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE }}
node-version: ${{ env.NODE_VERSION }}

- name: Enable Corepack
run: corepack enable
Expand Down
4 changes: 4 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,11 @@
"pdfjs-dist": "3.2.146",
"prettier": "^1.16.4",
"react": "^18.2.0",
"react-16": "npm:react@^16.8.0",
"react-17": "npm:react@^17.0.0",
"react-dom": "^18.2.0",
"react-dom-16": "npm:react-dom@^16.8.0",
"react-dom-17": "npm:react-dom@^17.0.0",
"rimraf": "^2.6.3",
"rollup": "^2.60.1",
"rollup-plugin-copy": "^3.5.0",
Expand Down
4 changes: 2 additions & 2 deletions packages/examples/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"vite": "^5.0.11"
},
"peerDependencies": {
"react": "^16.8.6 || ^17.0.0",
"react-dom": "^16.8.6 || ^17.0.0"
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
}
2 changes: 1 addition & 1 deletion packages/renderer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
"scheduler": "^0.17.0"
},
"peerDependencies": {
"react": "^16.8.6 || ^17.0.0 || ^18.0.0"
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
},
"lint-staged": {
"*.js": [
Expand Down
19 changes: 18 additions & 1 deletion packages/renderer/vitest.browser.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,28 @@ import { defineConfig } from 'vitest/config';
import react from '@vitejs/plugin-react';

export default defineConfig({
plugins: [react()],
resolve: {
alias:
process.env.REACT_VERSION && process.env.REACT_VERSION !== '18'
? [
{
find: 'react/jsx-dev-runtime',
replacement: `react-${process.env.REACT_VERSION}/jsx-dev-runtime`,
},
{
find: 'react',
replacement: `react-${process.env.REACT_VERSION}`,
},
{
find: 'react-dom',
replacement: `react-dom-${process.env.REACT_VERSION}`,
},
]
: undefined,
conditions: ['browser'],
mainFields: ['browser'],
},
plugins: [react()],
test: {
environment: './tests/environment/jsdom.js',
setupFiles: ['vitest.setup.js'],
Expand Down
19 changes: 19 additions & 0 deletions packages/renderer/vitest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,25 @@ import react from '@vitejs/plugin-react';

export default defineConfig({
plugins: [react()],
resolve: {
alias:
process.env.REACT_VERSION && process.env.REACT_VERSION !== '18'
? [
{
find: 'react/jsx-dev-runtime',
replacement: `react-${process.env.REACT_VERSION}/jsx-dev-runtime`,
},
{
find: 'react',
replacement: `react-${process.env.REACT_VERSION}`,
},
{
find: 'react-dom',
replacement: `react-dom-${process.env.REACT_VERSION}`,
},
]
: undefined,
},
test: {
// Necessary to avoid "Module did not self-register" error with canvas.node
pool: 'forks',
Expand Down
78 changes: 75 additions & 3 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2138,8 +2138,8 @@ __metadata:
"@vitejs/plugin-react": "npm:^4.2.1"
vite: "npm:^5.0.11"
peerDependencies:
react: ^16.8.6 || ^17.0.0
react-dom: ^16.8.6 || ^17.0.0
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
languageName: unknown
linkType: soft

Expand Down Expand Up @@ -2264,7 +2264,7 @@ __metadata:
size-limit: "npm:^11.0.1"
util: "npm:^0.12.4"
peerDependencies:
react: ^16.8.6 || ^17.0.0 || ^18.0.0
react: ^16.8.0 || ^17.0.0 || ^18.0.0
languageName: unknown
linkType: soft

Expand Down Expand Up @@ -2309,7 +2309,11 @@ __metadata:
pdfjs-dist: "npm:3.2.146"
prettier: "npm:^1.16.4"
react: "npm:^18.2.0"
react-16: "npm:react@^16.8.0"
react-17: "npm:react@^17.0.0"
react-dom: "npm:^18.2.0"
react-dom-16: "npm:react-dom@^16.8.0"
react-dom-17: "npm:react-dom@^17.0.0"
rimraf: "npm:^2.6.3"
rollup: "npm:^2.60.1"
rollup-plugin-copy: "npm:^3.5.0"
Expand Down Expand Up @@ -8355,6 +8359,54 @@ __metadata:
languageName: node
linkType: hard

"react-16@npm:react@^16.8.0":
version: 16.14.0
resolution: "react@npm:16.14.0"
dependencies:
loose-envify: "npm:^1.1.0"
object-assign: "npm:^4.1.1"
prop-types: "npm:^15.6.2"
checksum: df8faae43e01387013900e8f8fb3c4ce9935b7edbcbaa77e12999c913eb958000a0a8750bf9a0886dae0ad768dd4a4ee983752d5bade8d840adbe0ce890a2438
languageName: node
linkType: hard

"react-17@npm:react@^17.0.0":
version: 17.0.2
resolution: "react@npm:17.0.2"
dependencies:
loose-envify: "npm:^1.1.0"
object-assign: "npm:^4.1.1"
checksum: 07ae8959acf1596f0550685102fd6097d461a54a4fd46a50f88a0cd7daaa97fdd6415de1dcb4bfe0da6aa43221a6746ce380410fa848acc60f8ac41f6649c148
languageName: node
linkType: hard

"react-dom-16@npm:react-dom@^16.8.0":
version: 16.14.0
resolution: "react-dom@npm:16.14.0"
dependencies:
loose-envify: "npm:^1.1.0"
object-assign: "npm:^4.1.1"
prop-types: "npm:^15.6.2"
scheduler: "npm:^0.19.1"
peerDependencies:
react: ^16.14.0
checksum: ca146e780631672a2d57c8d77775d38f394a6cd67db30c6af7964d0b3574ef7edccb1de8d592e990b98f4f5f8d1c8460b0691f04e7a45799962a51dcbaaa1371
languageName: node
linkType: hard

"react-dom-17@npm:react-dom@^17.0.0":
version: 17.0.2
resolution: "react-dom@npm:17.0.2"
dependencies:
loose-envify: "npm:^1.1.0"
object-assign: "npm:^4.1.1"
scheduler: "npm:^0.20.2"
peerDependencies:
react: 17.0.2
checksum: 51abbcb72450fe527ebf978c3bc989ba266630faaa53f47a2fae5392369729e8de62b2e4683598cbe651ea7873cd34ec7d5127e2f50bf4bfe6bd0c3ad9bddcb0
languageName: node
linkType: hard

"react-dom@npm:^18.2.0":
version: 18.2.0
resolution: "react-dom@npm:18.2.0"
Expand Down Expand Up @@ -8953,6 +9005,26 @@ __metadata:
languageName: node
linkType: hard

"scheduler@npm:^0.19.1":
version: 0.19.1
resolution: "scheduler@npm:0.19.1"
dependencies:
loose-envify: "npm:^1.1.0"
object-assign: "npm:^4.1.1"
checksum: 9658932a73148a93d791c064b331d9690ddfecc4de25bcd6c9b89f5f1166e3d23d9c31c1595d66565e5ffbb34d47035cb14841aba6444bc266bfcd215cefe9c0
languageName: node
linkType: hard

"scheduler@npm:^0.20.2":
version: 0.20.2
resolution: "scheduler@npm:0.20.2"
dependencies:
loose-envify: "npm:^1.1.0"
object-assign: "npm:^4.1.1"
checksum: b0982e4b0f34f4ffa4f2f486161c0fd9ce9b88680b045dccbf250eb1aa4fd27413570645455187a83535e2370f5c667a251045547765408492bd883cbe95fcdb
languageName: node
linkType: hard

"scheduler@npm:^0.23.0":
version: 0.23.0
resolution: "scheduler@npm:0.23.0"
Expand Down

0 comments on commit e8536fa

Please sign in to comment.