diff --git a/packages/contracts/package.json b/packages/contracts/package.json index af7b27781..ec445b9dd 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -90,6 +90,7 @@ "test:e2e": "scripts/e2e", "test:gas": "RUN_EVM=true REPORT_GAS=true scripts/test", "test:coverage": "scripts/coverage", + "test:coverage:file": "scripts/test-coverage-file", "test:upgrade": "scripts/upgrade", "lint": "yarn lint:ts && yarn lint:sol", "lint:ts": "eslint '**/*.{js,ts}' --fix", @@ -103,16 +104,17 @@ }, "lint-staged": { "contracts/**/*.sol": [ - "yarn lint:sol" + "prettier --write", + "solhint --fix --noPrompt --config node_modules/solhint-graph-config/index.js" ], "**/*.ts": [ - "yarn lint:ts" + "eslint --fix" ], "**/*.js": [ - "yarn lint:ts" + "eslint --fix" ], "**/*.json": [ - "yarn lint:ts" + "eslint --fix" ] }, "repository": { diff --git a/packages/contracts/scripts/test-coverage-file b/packages/contracts/scripts/test-coverage-file new file mode 100755 index 000000000..dc1fe72c3 --- /dev/null +++ b/packages/contracts/scripts/test-coverage-file @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +set -eo pipefail + +# Check if a test file was provided +if [ $# -eq 0 ]; then + echo "Error: You must provide a test file path" + echo "Usage: ./scripts/test-coverage-file test/unit/rewards/rewards.test.ts" + exit 1 +fi + +# Build contracts first to ensure tests run against latest code +echo "Building contracts before running coverage..." +yarn build + +echo "{}" > addresses-local.json + +echo "Running coverage for test file: $1" +DISABLE_SECURE_ACCOUNTS=true \ +L1_GRAPH_CONFIG=config/graph.hardhat.yml \ +L2_GRAPH_CONFIG=config/graph.arbitrum-hardhat.yml \ +ADDRESS_BOOK=addresses-local.json \ + npx hardhat coverage --testfiles "$1"