From 439d2b7602ab6b7de77e1839bb21c109a28e04b8 Mon Sep 17 00:00:00 2001 From: Fuyao Zhao Date: Fri, 3 Feb 2023 11:40:05 -0800 Subject: [PATCH] chore(sdk): simpler way to run test command (#329) --- examples/aptos/package.json | 2 +- examples/aurory/package.json | 2 +- examples/sui/package.json | 2 +- examples/wormhole/package.json | 2 +- examples/x2y2-complex/package.json | 7 +++---- examples/x2y2/package.json | 5 ++--- package.json | 1 + packages/cli/package.json | 3 ++- packages/cli/src/cli.ts | 6 +++++- packages/cli/src/commands/run-test.ts | 9 +++++++++ packages/cli/templates/aptos/package.json | 2 +- packages/cli/templates/evm/package.json | 2 +- packages/cli/templates/raw/package.json | 2 +- packages/cli/templates/solana/package.json | 2 +- packages/sdk-solana/jest.config.ts | 2 +- packages/sdk/src/jest.config.ts | 8 ++++++++ yarn.lock | 13 ++++++++++--- 17 files changed, 49 insertions(+), 21 deletions(-) create mode 100644 packages/cli/src/commands/run-test.ts create mode 100644 packages/sdk/src/jest.config.ts diff --git a/examples/aptos/package.json b/examples/aptos/package.json index e4c513e783..7a222952cf 100644 --- a/examples/aptos/package.json +++ b/examples/aptos/package.json @@ -6,7 +6,7 @@ "type": "module", "scripts": { "compile": "tsc -p .", - "test": "NODE_OPTIONS=--experimental-vm-modules yarn jest", + "test": "sentio test", "build": "sentio build", "build_all": "yarn lerna run --scope=@sentio-example/aptos build --include-dependencies", "cli": "ts-node --files src/cli.ts" diff --git a/examples/aurory/package.json b/examples/aurory/package.json index aaf1103198..845f942d7d 100644 --- a/examples/aurory/package.json +++ b/examples/aurory/package.json @@ -4,9 +4,9 @@ "private": "true", "type": "module", "scripts": { - "test": "NODE_OPTIONS=--experimental-vm-modules yarn jest", "gen": "sentio gen", "build": "sentio build", + "test": "sentio test", "upload": "sentio upload", "build_all": "yarn lerna run --scope=@sentio-example/aurory build --include-dependencies" }, diff --git a/examples/sui/package.json b/examples/sui/package.json index 8c9d150c2f..d71c9d0b53 100644 --- a/examples/sui/package.json +++ b/examples/sui/package.json @@ -6,7 +6,7 @@ "type": "module", "scripts": { "compile": "tsc -p .", - "test": "NODE_OPTIONS=--experimental-vm-modules yarn jest", + "test": "sentio test", "build": "sentio build", "build_all": "yarn lerna run --scope=@sentio-example/sui build --include-dependencies" }, diff --git a/examples/wormhole/package.json b/examples/wormhole/package.json index 4a77b85cc6..da0e737bd6 100644 --- a/examples/wormhole/package.json +++ b/examples/wormhole/package.json @@ -6,7 +6,7 @@ "type": "module", "scripts": { "compile": "tsc -p .", - "test": "NODE_OPTIONS=--experimental-vm-modules yarn jest", + "test": "sentio test", "build": "yarn sentio build", "build_all": "yarn lerna run --scope=@sentio-example/wormhole build --include-dependencies" }, diff --git a/examples/x2y2-complex/package.json b/examples/x2y2-complex/package.json index 2f91f8c006..ccb2352294 100644 --- a/examples/x2y2-complex/package.json +++ b/examples/x2y2-complex/package.json @@ -6,8 +6,8 @@ "type": "module", "scripts": { "compile": "tsc -p .", - "test": "NODE_OPTIONS=--experimental-vm-modules yarn jest", - "build": "yarn install && sentio build", + "test": "sentio test", + "build": "sentio build", "upload": "sentio upload", "tsnode": "yarn ts-node", "build_all": "yarn lerna run --scope=@sentio-example/x2y2-complex build --include-dependencies" @@ -16,7 +16,6 @@ "@sentio/sdk": "^2.0.0-development" }, "devDependencies": { - "@sentio/cli": "^2.0.0-development", - "ts-node": "^10.8.0" + "@sentio/cli": "^2.0.0-development" } } diff --git a/examples/x2y2/package.json b/examples/x2y2/package.json index b26e7f6bc5..a10b92de04 100644 --- a/examples/x2y2/package.json +++ b/examples/x2y2/package.json @@ -6,7 +6,7 @@ "private": "true", "scripts": { "compile": "tsc -p .", - "test": "NODE_OPTIONS=--experimental-vm-modules yarn jest", + "test": "sentio test", "build": "sentio build", "upload": "sentio upload", "tsnode": "yarn ts-node-esm", @@ -16,7 +16,6 @@ "@sentio/sdk": "^2.0.0-development" }, "devDependencies": { - "@sentio/cli": "^2.0.0-development", - "ts-node": "^10.8.0" + "@sentio/cli": "^2.0.0-development" } } diff --git a/package.json b/package.json index db71286295..2ecdbbd50c 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "lint-staged": "^13.0.3", "prettier": "^2.8.1", "prettier-plugin-sh": "^0.12.8", + "prettier-plugin-sort-json": "^1.0.0", "semantic-release": "^19.0.5", "semantic-release-monorepo": "^7.0.5", "ts-jest": "^29.0.5", diff --git a/packages/cli/package.json b/packages/cli/package.json index 5c9c8b7f2f..80b1d1d059 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -13,6 +13,7 @@ "pub": "yarn build && yarn publish --no-git-tag-version" }, "dependencies": { + "@types/jest": "^29.0.0", "command-line-args": "^5.2.1", "command-line-usage": "^6.1.3", "express": "^4.18.2", @@ -24,9 +25,9 @@ "open": "^8.4.0", "tsup": "npm:@sentio/tsup@^6.5.0", "chalk": "^5.2.0", - "@types/jest": "^29.0.0", "jest": "^29.4.1", "ts-jest": "^29.0.5", + "@jest/types": "^29.4.1", "ts-node": "^10.9.1" }, "devDependencies": { diff --git a/packages/cli/src/cli.ts b/packages/cli/src/cli.ts index 0639f637e7..b4e2b19d03 100644 --- a/packages/cli/src/cli.ts +++ b/packages/cli/src/cli.ts @@ -13,6 +13,7 @@ import { runCreate } from './commands/run-create.js' import { runVersion } from './commands/run-version.js' import { runLogin } from './commands/run-login.js' import { runUpload } from './commands/run-upload.js' +import { runTest } from './commands/run-test.js' const mainDefinitions = [{ name: 'command', defaultOption: true }] const mainOptions = commandLineArgs(mainDefinitions, { @@ -27,9 +28,11 @@ if (!mainOptions.command) { if (mainOptions.command === 'login') { runLogin(argv) } else if (mainOptions.command === 'create') { - runCreate(argv) + await runCreate(argv) } else if (mainOptions.command === 'version') { runVersion(argv) +} else if (mainOptions.command === 'test') { + runTest(argv) } else { // For all the commands that need read project configs // TODO move them to their own modules @@ -110,6 +113,7 @@ function usage() { 'sentio upload\t\t\t\tbuild and upload processor to sentio', 'sentio gen\t\t\t\tgenerate abi', 'sentio build\t\t\t\tgenerate abi and build', + 'sentio test\t\t\t\trun tests', 'sentio version\t\t\tcurrent cli version', ], }, diff --git a/packages/cli/src/commands/run-test.ts b/packages/cli/src/commands/run-test.ts new file mode 100644 index 0000000000..d45c23a7c1 --- /dev/null +++ b/packages/cli/src/commands/run-test.ts @@ -0,0 +1,9 @@ +import { execSync } from 'child_process' +import path from 'path' +import { getPackageRoot } from '../utils.js' + +export function runTest(argv: string[]) { + const defaultJest = path.resolve(getPackageRoot('@sentio/sdk'), 'lib/jest.config.js') + // if config not existed copy that + execSync(`NODE_OPTIONS=--experimental-vm-modules yarn jest` + argv.join(' '), { stdio: 'inherit' }) +} diff --git a/packages/cli/templates/aptos/package.json b/packages/cli/templates/aptos/package.json index f169aa9cbc..44e8c07bba 100644 --- a/packages/cli/templates/aptos/package.json +++ b/packages/cli/templates/aptos/package.json @@ -4,7 +4,7 @@ "version": "1.0.0", "type": "module", "scripts": { - "test": "NODE_OPTIONS=--experimental-vm-modules yarn jest", + "test": "sentio test", "gen": "sentio gen", "build": "sentio build", "upload": "sentio upload" diff --git a/packages/cli/templates/evm/package.json b/packages/cli/templates/evm/package.json index 60076e0a83..1daedd8d6a 100644 --- a/packages/cli/templates/evm/package.json +++ b/packages/cli/templates/evm/package.json @@ -4,7 +4,7 @@ "version": "1.0.0", "type": "module", "scripts": { - "test": "NODE_OPTIONS=--experimental-vm-modules yarn jest", + "test": "sentio test", "gen": "sentio gen", "build": "sentio build", "upload": "sentio upload" diff --git a/packages/cli/templates/raw/package.json b/packages/cli/templates/raw/package.json index e97dc6531a..37636d2180 100644 --- a/packages/cli/templates/raw/package.json +++ b/packages/cli/templates/raw/package.json @@ -4,7 +4,7 @@ "version": "1.0.0", "type": "module", "scripts": { - "test": "NODE_OPTIONS=--experimental-vm-modules yarn jest", + "test": "sentio test", "gen": "sentio gen", "build": "sentio build", "upload": "sentio upload" diff --git a/packages/cli/templates/solana/package.json b/packages/cli/templates/solana/package.json index 993616ef2d..6950560a25 100644 --- a/packages/cli/templates/solana/package.json +++ b/packages/cli/templates/solana/package.json @@ -4,7 +4,7 @@ "version": "1.0.0", "type": "module", "scripts": { - "test": "NODE_OPTIONS=--experimental-vm-modules yarn jest", + "test": "sentio test", "gen": "sentio gen", "build": "sentio build", "upload": "sentio upload" diff --git a/packages/sdk-solana/jest.config.ts b/packages/sdk-solana/jest.config.ts index a16636713d..be6edcc277 100644 --- a/packages/sdk-solana/jest.config.ts +++ b/packages/sdk-solana/jest.config.ts @@ -1,7 +1,7 @@ /** @type {import('ts-jest/dist/types').JestConfigWithTsJest} */ export default { preset: 'ts-jest/presets/default-esm', - modulePathIgnorePatterns: ['/dist/'], + modulePathIgnorePatterns: ['/lib/'], moduleNameMapper: { '^(\\.{1,2}/.*)\\.js$': '$1', }, diff --git a/packages/sdk/src/jest.config.ts b/packages/sdk/src/jest.config.ts new file mode 100644 index 0000000000..a16636713d --- /dev/null +++ b/packages/sdk/src/jest.config.ts @@ -0,0 +1,8 @@ +/** @type {import('ts-jest/dist/types').JestConfigWithTsJest} */ +export default { + preset: 'ts-jest/presets/default-esm', + modulePathIgnorePatterns: ['/dist/'], + moduleNameMapper: { + '^(\\.{1,2}/.*)\\.js$': '$1', + }, +} diff --git a/yarn.lock b/yarn.lock index 92238e7b05..fac1c86cb8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7435,7 +7435,7 @@ jest-worker@^29.4.1: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.0.0, jest@^29.4.1: +jest@^29.4.1: version "29.4.1" resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.1.tgz#bb34baca8e05901b49c02c62f1183a6182ea1785" integrity sha512-cknimw7gAXPDOmj0QqztlxVtBVCw2lYY9CeIE5N6kD+kET1H4H79HSNISJmijb1HF+qk+G+ploJgiDi5k/fRlg== @@ -9464,6 +9464,13 @@ prettier-plugin-sh@^0.12.8: sh-syntax "^0.3.6" synckit "^0.8.1" +prettier-plugin-sort-json@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-plugin-sort-json/-/prettier-plugin-sort-json-1.0.0.tgz#fe677d5537b6d79d12ffaf1604046a3d3ee2427c" + integrity sha512-XgcaF/Sojax1vD6j53wNIByx0rp7ecang+A8W0eM+Ks3yBFu/qXjJNvUtC1lEWeYbNfmRs/d8FyYJCYozAVENw== + dependencies: + "@types/prettier" "^2.7.2" + prettier@^2.3.1: version "2.8.3" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632" @@ -11031,7 +11038,7 @@ ts-invariant@^0.10.3: dependencies: tslib "^2.1.0" -ts-jest@^29.0.0, ts-jest@^29.0.5: +ts-jest@^29.0.5: version "29.0.5" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.0.5.tgz#c5557dcec8fe434fcb8b70c3e21c6b143bfce066" integrity sha512-PL3UciSgIpQ7f6XjVOmbi96vmDHUqAyqDr8YxzopDqX3kfgYtX1cuNeBjP+L9sFXi6nzsGGA6R3fP3DDDJyrxA== @@ -11045,7 +11052,7 @@ ts-jest@^29.0.0, ts-jest@^29.0.5: semver "7.x" yargs-parser "^21.0.1" -ts-node@^10.8.0, ts-node@^10.9.1: +ts-node@^10.9.1: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==