Skip to content

Commit

Permalink
feat: set up env for test & add basic unit test example (#129)
Browse files Browse the repository at this point in the history
Co-authored-by: Jineshdarjee <[email protected]>
  • Loading branch information
0xSulpiride and Jineshdarjee authored Feb 7, 2024
1 parent e9df4ca commit 9198a0b
Show file tree
Hide file tree
Showing 51 changed files with 4,012 additions and 1,564 deletions.
27 changes: 19 additions & 8 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module.exports = {
browser: true,
es6: true,
node: true,
jest: true,
mocha: true,
},
globals: {
BigInt: true,
Expand Down Expand Up @@ -161,14 +161,25 @@ module.exports = {
},
{
files: ["**/test/**/*.test.ts"],
plugins: ["jest"],
plugins: ["mocha", "chai-expect"],
extends: ["plugin:mocha/recommended", "plugin:chai-expect/recommended"],
rules: {
"jest/no-disabled-tests": "warn",
"jest/no-focused-tests": "error",
"jest/no-identical-title": "error",
"jest/prefer-to-have-length": "warn",
"jest/valid-expect": "error"
}
// We observed that having multiple top level "describe" save valuable indentation
// https://github.com/lo1tuma/eslint-plugin-mocha/blob/master/docs/rules/max-top-level-suites.md
"mocha/max-top-level-suites": "off",
// We need to disable because we disabled "mocha/no-setup-in-describe" rule
// TODO: Move all setup code to before/beforeEach and then disable async describe
// https://github.com/lo1tuma/eslint-plugin-mocha/blob/master/docs/rules/no-async-describe.md
"mocha/no-async-describe": "off",
// Use of arrow functions are very common
"mocha/no-mocha-arrows": "off",
// It's common to call function inside describe block
// https://github.com/lo1tuma/eslint-plugin-mocha/blob/master/docs/rules/no-setup-in-describe.md
"mocha/no-setup-in-describe": "off",
// We use to split before in small isolated tasks
// https://github.com/lo1tuma/eslint-plugin-mocha/blob/master/docs/rules/no-sibling-hooks.md
"mocha/no-sibling-hooks": "off",
},
},
{
files: ["**/types/**/*.ts"],
Expand Down
4 changes: 4 additions & 0 deletions .mocharc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
extension: ["ts"]
colors: true
node-option:
- "loader=ts-node/esm"
183 changes: 0 additions & 183 deletions jest.config.js

This file was deleted.

22 changes: 17 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
"build": "yarn workspace types run build && yarn workspace db run build & lerna run build",
"lint": "eslint --color --ext .ts packages/*/src/",
"fix-lint": "eslint --ext .ts --fix packages/*/src/",
"test": "lerna run test --concurrency 1",
"test:unit": "lerna run test:unit --no-bail --concurrency 1",
"coverage": "vitest run --coverage",
"check-readme": "lerna run check-readme",
"release:publish": "lerna publish from-package --yes --no-verify-access",
"release:docker": "exit 0"
Expand All @@ -22,23 +24,33 @@
"lru-cache": "^6.0.0"
},
"devDependencies": {
"@types/chai": "4.3.6",
"@types/chai-as-promised": "7.1.6",
"@types/mocha": "10.0.1",
"@types/sinon": "10.0.16",
"@types/sinon-chai": "3.2.9",
"@types/abstract-leveldown": "7.2.1",
"@types/compression": "1.7.2",
"@types/jest": "29.2.3",
"@types/node": "18.11.9",
"@typescript-eslint/eslint-plugin": "5.43.0",
"@typescript-eslint/parser": "5.43.0",
"eslint": "8.27.0",
"eslint-config-airbnb-base": "15.0.0",
"eslint-plugin-import": "2.26.0",
"eslint-plugin-prettier": "4.2.1",
"jest": "29.3.1",
"jest-express": "1.12.0",
"eslint-plugin-mocha": "10.2.0",
"lerna": "6.4.1",
"ts-jest": "29.0.3",
"ts-node": "10.9.1",
"tsconfig-paths": "4.1.2",
"typescript": "4.8.4"
"typescript": "4.8.4",
"chai": "4.3.8",
"chai-as-promised": "7.1.1",
"sinon": "16.0.0",
"sinon-chai": "3.7.0",
"mocha": "10.2.0",
"vitest": "0.34.6",
"vitest-when": "0.2.0",
"@vitest/coverage-v8": "0.34.6"
},
"license": "MIT",
"workspaces": [
Expand Down
3 changes: 0 additions & 3 deletions packages/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@
"build": "tsc -p tsconfig.build.json",
"lint": "eslint --color --ext .ts src/ test/",
"lint:fix": "yarn run lint --fix",
"pretest": "yarn run check-types",
"test": "yarn test:unit",
"test:unit": "mocha 'test/unit/**/*.test.ts'",
"check-readme": "typescript-docs-verifier"
},
"dependencies": {
Expand Down
3 changes: 0 additions & 3 deletions packages/cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,6 @@
"write-git-data": "node lib/util/writeGitData.js",
"lint": "eslint --color --ext .ts src/ test/",
"lint:fix": "yarn run lint --fix",
"pretest": "yarn run check-types",
"test": "yarn test:unit",
"test:unit": "mocha 'test/unit/**/*.test.ts'",
"check-readme": "typescript-docs-verifier"
},
"bugs": {
Expand Down
3 changes: 0 additions & 3 deletions packages/db/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@
"build": "tsc -p tsconfig.build.json",
"lint": "eslint --color --ext .ts src/ test/",
"lint:fix": "yarn run lint --fix",
"pretest": "yarn run check-types",
"test": "yarn test:unit",
"test:unit": "mocha 'test/unit/**/*.test.ts'",
"check-readme": "typescript-docs-verifier"
},
"dependencies": {
Expand Down
8 changes: 8 additions & 0 deletions packages/executor/.mocharc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
colors: true
require:
- ./test/setup.ts
timeout: 5000
exit: true
extension: ["ts"]
node-option:
- "loader=ts-node/esm"
3 changes: 1 addition & 2 deletions packages/executor/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,8 @@
"build": "tsc -p tsconfig.build.json",
"lint": "eslint --color --ext .ts src/ test/",
"lint:fix": "yarn run lint --fix",
"pretest": "yarn run check-types",
"test": "yarn test:unit",
"test:unit": "mocha 'test/unit/**/*.test.ts'",
"test:unit": "vitest --run --dir test/unit/",
"check-readme": "typescript-docs-verifier"
},
"dependencies": {
Expand Down
3 changes: 3 additions & 0 deletions packages/executor/src/modules/skandha.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,9 @@ export class Skandha {
minSignerBalance: `${ethers.utils.formatEther(
this.networkConfig.minSignerBalance
)} eth`,
minStake: `${ethers.utils.formatEther(
this.networkConfig.minStake!
)} eth`,
multicall: this.networkConfig.multicall,
estimationStaticBuffer: BigNumber.from(
this.networkConfig.estimationStaticBuffer
Expand Down
14 changes: 14 additions & 0 deletions packages/executor/test/constants.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { constants } from "ethers";
import { StakeInfo } from "../src/interfaces";

export const TestAccountMnemonic = "test test test test test test test test test test test junk";
export const EntryPointAddress = "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789";
export const SimpleFactoryAddress = "0x6Cf2534C6AA425F20fb6A15FC836C8DD7e8f14e3";
export const DefaultRpcUrl = "http://127.0.0.1:8545";
export const NetworkName = "anvil";
export const ChainId = 31337;
export const ZeroStakeInfo: StakeInfo = {
addr: constants.AddressZero,
stake: constants.Zero,
unstakeDelaySec: constants.Zero
}
12 changes: 12 additions & 0 deletions packages/executor/test/fixtures/accounts.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
export const testAccounts = [ // test accounts
"0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80", // (0) "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" (10000 ETH)
"0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d", // (1) "0x70997970C51812dc3A010C7d01b50e0d17dc79C8" (10000 ETH)
"0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a", // (2) "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC" (10000 ETH)
"0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6", // (3) "0x90F79bf6EB2c4f870365E785982E1f101E93b906" (10000 ETH)
"0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a", // (4) "0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65" (10000 ETH)
"0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba", // (5) "0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc" (10000 ETH)
"0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e", // (6) "0x976EA74026E726554dB657fA54763abd0C3a0aa9" (10000 ETH)
"0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356", // (7) "0x14dC79964da2C08b23698B3D3cc7Ca32193d9955" (10000 ETH)
"0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97", // (8) "0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f" (10000 ETH)
"0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6", // (9) "0xa0Ee7A142d267C1f36714E4a8F75612F20a79720" (10000 ETH)
]
Loading

0 comments on commit 9198a0b

Please sign in to comment.