Make a shortcut for installing compat-tests' fixtures

This commit is contained in:
Aria Minaei 2023-02-06 12:58:13 +01:00 committed by Aria
parent 72222e5eeb
commit 8ab1de79ce
3 changed files with 4 additions and 3 deletions

View file

@ -116,4 +116,4 @@ jobs:
yarn workspace @theatre/compatibility-tests run install-fixtures
--verbose
# after that, we run the jest tests for each fixture
- run: yarn test:compat
- run: yarn test:compat:run

View file

@ -14,7 +14,7 @@ This setup helps us test whether Theatre.js is compatible with popular tools in
1. First, we run `yarn run install-fixtures`, which tries to install Theatre.js on a fixture as if `@theatre/core|studio|r3f` were installed through npm. This script runs a [local npm registry](https://github.com/verdaccio/verdaccio) and publishes a production build of all the Theatre.js packages to it. Then, it iterates through `./fixtures/*/package` and runs `$ npm install` on them, using that local npm registry.
**If this step fails**, that usually means one of `@theatre/*` packages has a `dependency/peerDependency` that cannot be satisfied by `npm/yarn`. So this is always the first thing to fix.
1. Then, we run `$ yarn test:compat`, which will run jest on all of `*.compat-test.ts` files, each of which tests an aspect of a test setup.
1. Then, we run `$ yarn test:compat:run`, which will run jest on all of `*.compat-test.ts` files, each of which tests an aspect of a test setup.
2. Most of our fixtures don't actually have `.compat-test.ts` files, so we'll have to run them manually and see if Theatre still works in them, jut like a manual QA pass.
> **Gotchas**

View file

@ -18,7 +18,8 @@
"clean": "zx scripts/clean.mjs",
"build:ts": "tsc --build ./devEnv/typecheck-all-projects/tsconfig.all.json",
"test": "jest",
"test:compat": "jest --config jest.compat-tests.config.js",
"test:compat:install": "yarn workspace @theatre/compatibility-tests run install-fixtures",
"test:compat:run": "jest --config jest.compat-tests.config.js",
"postinstall": "husky install",
"release": "zx scripts/release.mjs",
"lint:all": "eslint . --ext ts,tsx --ignore-path=.gitignore --rulesdir ./devEnv/eslint/rules"