From e5dc6eda9cf057361bf7a4230d05e50f9dd55ca1 Mon Sep 17 00:00:00 2001 From: Cedoor Date: Thu, 20 Nov 2025 10:23:31 +0000 Subject: [PATCH 1/7] chore: update test commands in README and package.json --- README.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 5 +++-- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f043335230..aff2d3b185 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,53 @@ pnpm test pnpm clean ``` +### Testing + +**⚠️ Important:** Always run tests through pnpm scripts, not directly via `cargo test` or other build tools. The pnpm scripts ensure necessary setup steps are executed (e.g., building required binaries, setting up test environments) that may be skipped when running tests directly. + +#### Test Scripts + +The monorepo provides several test scripts for different components: + +- **`pnpm test`** - Runs all tests across the entire monorepo: + + - EVM/Smart contract tests (`evm:test`) + - Rust crate tests (`rust:test`) + - SDK tests (`sdk:test`) + - Noir circuit tests (`noir:test`) + +- **`pnpm rust:test`** - Runs all Rust crate tests in the `crates/` directory. This script runs tests for all crates in the workspace, not just ciphernode-related crates. + +- **`pnpm evm:test`** - Runs tests for the EVM smart contracts in `packages/enclave-contracts`. + +- **`pnpm sdk:test`** - Runs tests for the TypeScript SDK in `packages/enclave-sdk`. + +- **`pnpm noir:test`** - Runs tests for Noir circuits in the `circuits/` directory using `nargo test`. + +- **`pnpm test:integration`** - Runs integration tests from `tests/integration/`. These tests may require prebuilt binaries and can be run with `--no-prebuild` if binaries are already available. + +#### Running Individual Test Suites + +```bash +# Run only Rust crate tests +pnpm rust:test + +# Run only EVM/smart contract tests +pnpm evm:test + +# Run only SDK tests +pnpm sdk:test + +# Run only Noir circuit tests +pnpm noir:test + +# Run only integration tests +pnpm test:integration + +# Run integration tests without prebuild step (if binaries already exist) +pnpm test:integration --no-prebuild +``` + ### Contributors diff --git a/package.json b/package.json index 62e48f8e5f..8691ddbed6 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "check:license": "./scripts/check-license-headers.sh", "check:size": "./scripts/check-size.sh", "check:pnpm": "./scripts/check-pnpm.sh", - "test": "pnpm evm:test && pnpm ciphernode:test && pnpm sdk:test && ./scripts/test-circuits.sh", + "test": "pnpm evm:test && pnpm rust:test && pnpm sdk:test && pnpm noir:test", "test:integration": "cd ./tests/integration && ./test.sh", "coverage": "pnpm evm:coverage", "prepare": "husky", @@ -24,7 +24,8 @@ "ciphernode:lint": "cargo fmt -- --check", "ciphernode:add": "cd packages/enclave-contracts && pnpm ciphernode:admin-add", "ciphernode:remove": "cd packages/enclave-contracts && pnpm ciphernode:remove", - "ciphernode:test": "cd crates && ./scripts/test.sh", + "rust:test": "cd crates && ./scripts/test.sh", + "noir:test": "./scripts/test-circuits.sh", "ciphernode:build": "cargo build --locked --release", "preciphernode:build": "pnpm evm:build", "committee:new": "cd packages/enclave-contracts && pnpm committee:new", From 8f38dd32f2bc1d6d806dc63d7ddf1e9af8c17c9b Mon Sep 17 00:00:00 2001 From: Cedoor Date: Thu, 20 Nov 2025 10:34:44 +0000 Subject: [PATCH 2/7] chore: make all scripts more consistent --- .github/workflows/ci.yml | 10 ++--- package.json | 62 +++++++++++++++---------------- packages/enclave-sdk/package.json | 2 +- 3 files changed, 37 insertions(+), 37 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1f1f643068..7c87b4ea76 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,7 +46,7 @@ jobs: sudo add-apt-repository ppa:ethereum/ethereum \ && sudo apt-get update -y \ && sudo apt-get install -y solc - + - name: Run CRISP Unit Tests working-directory: ./examples/CRISP run: "cargo test" @@ -88,8 +88,8 @@ jobs: - name: "Install the dependencies" run: "pnpm install" - - name: Checking code format ciphernode - run: pnpm ciphernode:lint + - name: Checking code format rust + run: pnpm rust:lint - name: Run Unit Tests run: "cargo test --lib && cargo test --doc" @@ -131,8 +131,8 @@ jobs: - name: "Install the dependencies" run: "pnpm install" - - name: Checking code format ciphernode - run: pnpm ciphernode:lint + - name: Checking code format rust + run: pnpm rust:lint - name: Run Integration Tests run: "cargo test --test integration -- --nocapture && cargo test --test integration_legacy -- --nocapture" diff --git a/package.json b/package.json index 8691ddbed6..722278b613 100644 --- a/package.json +++ b/package.json @@ -11,49 +11,49 @@ "scripts": { "bump:versions": "tsx scripts/bump-versions.ts", "clean": "tsx scripts/clean.ts", - "compile": "pnpm evm:build && pnpm sdk:build && pnpm react:build && pnpm ciphernode:build", - "lint": "pnpm evm:lint && pnpm ciphernode:lint && ./scripts/lint-circuits.sh", + "compile": "pnpm build:ts && pnpm rust:build", + "lint": "pnpm evm:lint && pnpm rust:lint && pnpm noir:lint", "check:license": "./scripts/check-license-headers.sh", "check:size": "./scripts/check-size.sh", "check:pnpm": "./scripts/check-pnpm.sh", "test": "pnpm evm:test && pnpm rust:test && pnpm sdk:test && pnpm noir:test", - "test:integration": "cd ./tests/integration && ./test.sh", + "test:integration": "pnpm -C ./tests/integration exec ./test.sh", "coverage": "pnpm evm:coverage", "prepare": "husky", "enclave": "cd crates && ./scripts/launch.sh", - "ciphernode:lint": "cargo fmt -- --check", - "ciphernode:add": "cd packages/enclave-contracts && pnpm ciphernode:admin-add", - "ciphernode:remove": "cd packages/enclave-contracts && pnpm ciphernode:remove", + "rust:lint": "cargo fmt -- --check", + "ciphernode:add": "pnpm -C packages/enclave-contracts ciphernode:admin-add", + "ciphernode:remove": "pnpm -C packages/enclave-contracts ciphernode:remove", "rust:test": "cd crates && ./scripts/test.sh", "noir:test": "./scripts/test-circuits.sh", - "ciphernode:build": "cargo build --locked --release", - "preciphernode:build": "pnpm evm:build", - "committee:new": "cd packages/enclave-contracts && pnpm committee:new", - "committee:publish": "cd packages/enclave-contracts && pnpm hardhat committee:publish", - "e3:activate": "cd packages/enclave-contracts && pnpm e3:activate", - "e3:publishInput": "cd packages/enclave-contracts && pnpm hardhat e3:publishInput", - "e3:publishCiphertext": "cd packages/enclave-contracts && pnpm hardhat e3:publishCiphertext", - "evm:install": "cd packages/enclave-contracts && pnpm install", - "evm:node": "cd packages/enclave-contracts && pnpm hardhat node", - "evm:build": "cd packages/enclave-contracts && pnpm compile", - "evm:lint": "cd packages/enclave-contracts && pnpm lint", - "evm:test": "cd packages/enclave-contracts && pnpm test", - "evm:deploy": "cd packages/enclave-contracts && pnpm run deploy:mocks", - "evm:clean": "cd packages/enclave-contracts && pnpm clean:deployments", - "evm:coverage": "cd packages/enclave-contracts && pnpm coverage", - "evm:release": "cd packages/enclave-contracts && pnpm release", - "react:build": "cd packages/enclave-react && pnpm build", - "sdk:build": "cd packages/enclave-sdk && pnpm build", - "sdk:test": "cd packages/enclave-sdk && pnpm test", - "sdk:release": "cd packages/enclave-sdk && pnpm release", - "wasm:release": "cd crates/wasm && pnpm release", - "config:release": "cd packages/enclave-config && pnpm release", - "react:release": "cd packages/enclave-react && pnpm release", + "noir:lint": "./scripts/lint-circuits.sh", + "rust:build": "cargo build --locked --release", + "prerust:build": "pnpm evm:build", + "committee:new": "pnpm -C packages/enclave-contracts committee:new", + "committee:publish": "pnpm -C packages/enclave-contracts hardhat committee:publish", + "e3:activate": "pnpm -C packages/enclave-contracts e3:activate", + "e3:publishInput": "pnpm -C packages/enclave-contracts hardhat e3:publishInput", + "e3:publishCiphertext": "pnpm -C packages/enclave-contracts hardhat e3:publishCiphertext", + "evm:install": "pnpm -C packages/enclave-contracts install", + "evm:node": "pnpm -C packages/enclave-contracts hardhat node", + "evm:build": "pnpm -C packages/enclave-contracts compile", + "evm:lint": "pnpm -C packages/enclave-contracts lint", + "evm:test": "pnpm -C packages/enclave-contracts test", + "evm:deploy": "pnpm -C packages/enclave-contracts run deploy:mocks", + "evm:clean": "pnpm -C packages/enclave-contracts clean:deployments", + "evm:coverage": "pnpm -C packages/enclave-contracts coverage", + "evm:release": "pnpm -C packages/enclave-contracts release", + "react:build": "pnpm -C packages/enclave-react build", + "sdk:build": "pnpm -C packages/enclave-sdk build", + "sdk:test": "pnpm -C packages/enclave-sdk test", + "sdk:release": "pnpm -C packages/enclave-sdk release", + "wasm:release": "pnpm -C crates/wasm release", + "config:release": "pnpm -C packages/enclave-config release", + "react:release": "pnpm -C packages/enclave-react release", "npm:release": "pnpm build && pnpm config:release && pnpm evm:release && pnpm wasm:release && pnpm sdk:release && pnpm react:release", "support:build": "cd crates/support && ./scripts/build.sh", "build": "pnpm compile", - "wasm:build": "cd ./crates/wasm && pnpm build", - "release": "pnpm build && changeset publish", + "wasm:build": "pnpm -C ./crates/wasm build", "build:ts": "pnpm evm:build && pnpm sdk:build && pnpm react:build" }, "packageManager": "pnpm@10.7.1+sha512.2d92c86b7928dc8284f53494fb4201f983da65f0fb4f0d40baafa5cf628fa31dae3e5968f12466f17df7e97310e30f343a648baea1b9b350685dafafffdf5808", diff --git a/packages/enclave-sdk/package.json b/packages/enclave-sdk/package.json index bd79c6ff7c..85b66dc5aa 100644 --- a/packages/enclave-sdk/package.json +++ b/packages/enclave-sdk/package.json @@ -20,7 +20,7 @@ "access": "public" }, "scripts": { - "prebuild": "cd ../enclave-contracts && pnpm build && cd ../../crates/wasm && pnpm build", + "prebuild": "pnpm -C ../enclave-contracts build && pnpm wasm:build", "build": "tsup", "dev": "tsup --watch", "clean": "rm -rf dist", From af5fe0ff2b4426239d3752d5de99d2a6a9210832 Mon Sep 17 00:00:00 2001 From: Cedoor Date: Thu, 20 Nov 2025 10:39:38 +0000 Subject: [PATCH 3/7] chore: remove test command from first dev section --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index aff2d3b185..1147355151 100644 --- a/README.md +++ b/README.md @@ -36,9 +36,6 @@ pnpm i # Build the project pnpm build -# Run tests -pnpm test - # Clean build artifacts pnpm clean ``` From a3e92bb6f94d8205296faf89f56aa0d8957e320a Mon Sep 17 00:00:00 2001 From: Cedoor Date: Thu, 20 Nov 2025 10:42:41 +0000 Subject: [PATCH 4/7] fix: update test command in package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 722278b613..ae6fb52659 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "check:size": "./scripts/check-size.sh", "check:pnpm": "./scripts/check-pnpm.sh", "test": "pnpm evm:test && pnpm rust:test && pnpm sdk:test && pnpm noir:test", - "test:integration": "pnpm -C ./tests/integration exec ./test.sh", + "test:integration": "cd ./tests/integration && ./test.sh", "coverage": "pnpm evm:coverage", "prepare": "husky", "enclave": "cd crates && ./scripts/launch.sh", From 1e490cb44c2920d7d3b1f45cab9cf75fbd81e99c Mon Sep 17 00:00:00 2001 From: Cedoor Date: Thu, 20 Nov 2025 10:45:00 +0000 Subject: [PATCH 5/7] fix: update prebuild script in enclave-sdk --- packages/enclave-sdk/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/enclave-sdk/package.json b/packages/enclave-sdk/package.json index 85b66dc5aa..a3c7aa4945 100644 --- a/packages/enclave-sdk/package.json +++ b/packages/enclave-sdk/package.json @@ -20,7 +20,7 @@ "access": "public" }, "scripts": { - "prebuild": "pnpm -C ../enclave-contracts build && pnpm wasm:build", + "prebuild": "pnpm -C ../enclave-contracts build && pnpm -C ../../ wasm:build", "build": "tsup", "dev": "tsup --watch", "clean": "rm -rf dist", From 652a269eb04e07a7ebceb7c7d9607c5280c8b4be Mon Sep 17 00:00:00 2001 From: Cedoor Date: Thu, 20 Nov 2025 11:48:44 +0000 Subject: [PATCH 6/7] chore: update test command in package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ae6fb52659..e14fba46f4 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "e3:publishInput": "pnpm -C packages/enclave-contracts hardhat e3:publishInput", "e3:publishCiphertext": "pnpm -C packages/enclave-contracts hardhat e3:publishCiphertext", "evm:install": "pnpm -C packages/enclave-contracts install", - "evm:node": "pnpm -C packages/enclave-contracts hardhat node", + "evm:node": "cd packages/enclave-contracts && pnpm hardhat node", "evm:build": "pnpm -C packages/enclave-contracts compile", "evm:lint": "pnpm -C packages/enclave-contracts lint", "evm:test": "pnpm -C packages/enclave-contracts test", From 703fd0c4c7358d2d1f1320f7a87ecbdd130560a5 Mon Sep 17 00:00:00 2001 From: Cedoor Date: Thu, 20 Nov 2025 12:01:56 +0000 Subject: [PATCH 7/7] chore: update package.json scripts to use cd --- package.json | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index e14fba46f4..c52480a857 100644 --- a/package.json +++ b/package.json @@ -22,38 +22,38 @@ "prepare": "husky", "enclave": "cd crates && ./scripts/launch.sh", "rust:lint": "cargo fmt -- --check", - "ciphernode:add": "pnpm -C packages/enclave-contracts ciphernode:admin-add", - "ciphernode:remove": "pnpm -C packages/enclave-contracts ciphernode:remove", + "ciphernode:add": "cd packages/enclave-contracts && pnpm ciphernode:admin-add", + "ciphernode:remove": "cd packages/enclave-contracts && pnpm ciphernode:remove", "rust:test": "cd crates && ./scripts/test.sh", "noir:test": "./scripts/test-circuits.sh", "noir:lint": "./scripts/lint-circuits.sh", "rust:build": "cargo build --locked --release", "prerust:build": "pnpm evm:build", - "committee:new": "pnpm -C packages/enclave-contracts committee:new", - "committee:publish": "pnpm -C packages/enclave-contracts hardhat committee:publish", - "e3:activate": "pnpm -C packages/enclave-contracts e3:activate", - "e3:publishInput": "pnpm -C packages/enclave-contracts hardhat e3:publishInput", - "e3:publishCiphertext": "pnpm -C packages/enclave-contracts hardhat e3:publishCiphertext", - "evm:install": "pnpm -C packages/enclave-contracts install", + "committee:new": "cd packages/enclave-contracts && pnpm committee:new", + "committee:publish": "cd packages/enclave-contracts && pnpm hardhat committee:publish", + "e3:activate": "cd packages/enclave-contracts && pnpm e3:activate", + "e3:publishInput": "cd packages/enclave-contracts && pnpm hardhat e3:publishInput", + "e3:publishCiphertext": "cd packages/enclave-contracts && pnpm hardhat e3:publishCiphertext", + "evm:install": "cd packages/enclave-contracts && pnpm install", "evm:node": "cd packages/enclave-contracts && pnpm hardhat node", - "evm:build": "pnpm -C packages/enclave-contracts compile", - "evm:lint": "pnpm -C packages/enclave-contracts lint", - "evm:test": "pnpm -C packages/enclave-contracts test", - "evm:deploy": "pnpm -C packages/enclave-contracts run deploy:mocks", - "evm:clean": "pnpm -C packages/enclave-contracts clean:deployments", - "evm:coverage": "pnpm -C packages/enclave-contracts coverage", - "evm:release": "pnpm -C packages/enclave-contracts release", - "react:build": "pnpm -C packages/enclave-react build", - "sdk:build": "pnpm -C packages/enclave-sdk build", - "sdk:test": "pnpm -C packages/enclave-sdk test", - "sdk:release": "pnpm -C packages/enclave-sdk release", - "wasm:release": "pnpm -C crates/wasm release", - "config:release": "pnpm -C packages/enclave-config release", - "react:release": "pnpm -C packages/enclave-react release", + "evm:build": "cd packages/enclave-contracts && pnpm compile", + "evm:lint": "cd packages/enclave-contracts && pnpm lint", + "evm:test": "cd packages/enclave-contracts && pnpm test", + "evm:deploy": "cd packages/enclave-contracts && pnpm run deploy:mocks", + "evm:clean": "cd packages/enclave-contracts && pnpm clean:deployments", + "evm:coverage": "cd packages/enclave-contracts && pnpm coverage", + "evm:release": "cd packages/enclave-contracts && pnpm release", + "react:build": "cd packages/enclave-react && pnpm build", + "sdk:build": "cd packages/enclave-sdk && pnpm build", + "sdk:test": "cd packages/enclave-sdk && pnpm test", + "sdk:release": "cd packages/enclave-sdk && pnpm release", + "wasm:release": "cd crates/wasm && pnpm release", + "config:release": "cd packages/enclave-config && pnpm release", + "react:release": "cd packages/enclave-react && pnpm release", "npm:release": "pnpm build && pnpm config:release && pnpm evm:release && pnpm wasm:release && pnpm sdk:release && pnpm react:release", "support:build": "cd crates/support && ./scripts/build.sh", "build": "pnpm compile", - "wasm:build": "pnpm -C ./crates/wasm build", + "wasm:build": "cd crates/wasm && pnpm build", "build:ts": "pnpm evm:build && pnpm sdk:build && pnpm react:build" }, "packageManager": "pnpm@10.7.1+sha512.2d92c86b7928dc8284f53494fb4201f983da65f0fb4f0d40baafa5cf628fa31dae3e5968f12466f17df7e97310e30f343a648baea1b9b350685dafafffdf5808",