From 325a9f093ebf9e5a6d0b0ad7620260df9fc2e202 Mon Sep 17 00:00:00 2001 From: Eoghan Murray Date: Fri, 2 Jun 2023 11:19:35 +0100 Subject: [PATCH] Update test commands (#1205) * As per @Yun Feng: everyone has npm installed globally but maybe not yarn * Add command to enable test result updating * Default to running tests HEADLESS on rrweb * Add command to build:all in a low memory environment * Add a 'retest' command for when the code hasn't changed, but you are working on the test cases * Add commands to reformat according to prettier. Named 'reformat' to indicate that we are doing a `--write` * Update package.json Co-authored-by: Yun Feng * Apply suggestions from code review Co-authored-by: Yun Feng * Create few-turkeys-reflect.md * Apply formatting changes --------- Co-authored-by: Justin Halsall Co-authored-by: Yun Feng --- .changeset/few-turkeys-reflect.md | 2 ++ README.md | 5 +++-- package.json | 4 +++- packages/rrweb-snapshot/package.json | 3 ++- packages/rrweb/package.json | 12 ++++++++---- turbo.json | 1 + 6 files changed, 19 insertions(+), 8 deletions(-) create mode 100644 .changeset/few-turkeys-reflect.md diff --git a/.changeset/few-turkeys-reflect.md b/.changeset/few-turkeys-reflect.md new file mode 100644 index 00000000..a845151c --- /dev/null +++ b/.changeset/few-turkeys-reflect.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/README.md b/README.md index 491b7fb2..697cbcda 100644 --- a/README.md +++ b/README.md @@ -64,8 +64,9 @@ Since we want the record and replay sides to share a strongly typed data structu 2. Run `yarn install` in the root to install required dependencies for all sub-packages (note: `npm install` is _not_ recommended). 3. Run `yarn dev` in the root to get auto-building for all the sub-packages whenever you modify anything. 4. Navigate to one of the sub-packages (in the `packages` folder) where you'd like to make a change. -5. Patch the code and run `yarn test` to run the tests, make sure they pass before you commit anything. -6. Push the code and create a pull request. +5. Patch the code and run `yarn test` to run the tests, make sure they pass before you commit anything. Add test cases in order to avoid future regression. +6. If tests are failing, but the change in output is desirable, run `yarn test:update` and carefully commit the changes in test output. +7. Push the code and create a pull request. Protip: You can run `yarn test` in the root folder to run all the tests. diff --git a/package.json b/package.json index 60096855..3e7cb602 100644 --- a/package.json +++ b/package.json @@ -36,9 +36,11 @@ "typescript": "^4.7.3" }, "scripts": { - "build:all": "yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references' 'yarn turbo run prepublish'", + "build:all": "NODE_OPTIONS='--max-old-space-size=4096' yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references' 'yarn turbo run prepublish'", "test": "yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references --check' 'yarn turbo run test'", "test:watch": "yarn turbo run test:watch", + "test:update": "yarn turbo run test:update", + "format": "yarn prettier --write '**/*.{ts,md}'", "dev": "yarn turbo run dev", "repl": "cd packages/rrweb && npm run repl", "live-stream": "cd packages/rrweb && yarn live-stream", diff --git a/packages/rrweb-snapshot/package.json b/packages/rrweb-snapshot/package.json index e4d8f3b7..7dc4c439 100644 --- a/packages/rrweb-snapshot/package.json +++ b/packages/rrweb-snapshot/package.json @@ -7,11 +7,12 @@ "prepack": "npm run bundle && npm run typings", "test": "jest", "test:watch": "jest --watch", + "test:update": "jest --updateSnapshot", "bundle": "rollup --config", "bundle:es-only": "cross-env ES_ONLY=true rollup --config", "dev": "yarn bundle:es-only --watch", "typings": "tsc -d --declarationDir typings", - "prepublish": "npm run typings && npm run bundle", + "prepublish": "yarn typings && yarn bundle", "lint": "yarn eslint src" }, "type": "module", diff --git a/packages/rrweb/package.json b/packages/rrweb/package.json index 9064f03e..42d092ae 100644 --- a/packages/rrweb/package.json +++ b/packages/rrweb/package.json @@ -5,10 +5,14 @@ "scripts": { "prepare": "npm run prepack", "prepack": "npm run bundle", - "test": "npm run bundle:browser && jest --testPathIgnorePatterns test/benchmark", - "test:headless": "PUPPETEER_HEADLESS=true npm run test", - "test:watch": "PUPPETEER_HEADLESS=true npm run test -- --watch", - "repl": "npm run bundle:browser && node scripts/repl.js", + "retest": "jest --testPathIgnorePatterns test/benchmark", + "build-and-test": "yarn bundle:browser && yarn retest", + "test:headless": "PUPPETEER_HEADLESS=true yarn build-and-test", + "test:headful": "PUPPETEER_HEADLESS=false yarn build-and-test", + "test": "yarn test:headless", + "test:watch": "yarn test:headless -- --watch", + "test:update": "yarn test:headless -- --updateSnapshot", + "repl": "yarn bundle:browser && node scripts/repl.js", "live-stream": "yarn bundle:browser && node scripts/stream.js", "dev": "yarn bundle:browser --watch", "bundle:browser": "cross-env BROWSER_ONLY=true rollup --config", diff --git a/turbo.json b/turbo.json index c14def86..70ca7bb5 100644 --- a/turbo.json +++ b/turbo.json @@ -10,6 +10,7 @@ "test:watch": { "persistent": true }, + "test:update": {}, "dev": { "dependsOn": ["^prepublish"], "persistent": true