diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index a742d68525..0e205b65e4 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -110,7 +110,7 @@ jobs:
# id: unit_tests
# Rever to "yarn test:unit" when finished debugging core dumps
# run: sudo sh -c "ulimit -c unlimited && /usr/bin/node-with-debug $(which yarn) test:unit"
- run: yarn test:unit
+ run: yarn vitest run --project unit --project unit-mainnet --coverage
# # Remove when finished debugging core dumps
# - uses: './.github/actions/core-dump'
diff --git a/biome.jsonc b/biome.jsonc
index 128a48cc91..47d908c5ef 100644
--- a/biome.jsonc
+++ b/biome.jsonc
@@ -7,7 +7,7 @@
"defaultBranch": "unstable"
},
"files": {
- "include": ["packages/*/src/**/*.ts", "packages/*/test/**/*.ts", "configs/**/*.ts"]
+ "include": ["packages/*/src/**/*.ts", "packages/*/test/**/*.ts", "configs/**/*.ts", "./vitest.config.ts"]
},
"formatter": {
"enabled": true,
diff --git a/configs/vitest.config.base.e2e.ts b/configs/vitest.config.base.e2e.ts
deleted file mode 100644
index df7c28843f..0000000000
--- a/configs/vitest.config.base.e2e.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "./vitest.config.base.unit.js";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- coverage: {
- enabled: false,
- },
- pool: "forks",
- poolOptions: {
- forks: {
- singleFork: true,
- },
- },
- },
- })
-);
diff --git a/configs/vitest.config.base.spec.ts b/configs/vitest.config.base.spec.ts
deleted file mode 100644
index d90b733a5e..0000000000
--- a/configs/vitest.config.base.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "./vitest.config.base.unit.js";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- coverage: {
- enabled: false,
- },
- // There are tests which is taking over 10 minutes.
- // ✓ test/spec/presets/epoch_processing.test.ts > electra/epoch_processing/rewards_and_penalties/pyspec_tests > electra/epoch_processing/rewards_and_penalties/pyspec_tests/full_attestations_one_validaor_one_gwei 572377ms
- // So I have to increase these values to such extreme
- testTimeout: 1000 * 60 * 15,
- hookTimeout: 1000 * 60 * 15,
- passWithNoTests: true,
- pool: "threads",
- poolOptions: {
- threads: {
- isolate: false,
- },
- },
- },
- })
-);
diff --git a/configs/vitest.config.base.ts b/configs/vitest.config.base.ts
deleted file mode 100644
index 5c59ec5d96..0000000000
--- a/configs/vitest.config.base.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import path from "node:path";
-import {defineConfig} from "vitest/config";
-const __dirname = new URL(".", import.meta.url).pathname;
-
-export default defineConfig({
- test: {
- pool: "threads",
- include: ["**/*.test.ts"],
- exclude: [
- "**/spec-tests/**",
- "**/spec-tests-bls/**",
- "**/*.browser.test.ts",
- "**/node_modules/**",
- "**/dist/**",
- "**/cypress/**",
- "**/.{idea,git,cache,output,temp}/**",
- "**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*",
- ],
- setupFiles: [
- path.join(__dirname, "../scripts/vitest/setupFiles/customMatchers.ts"),
- path.join(__dirname, "../scripts/vitest/setupFiles/dotenv.ts"),
- ],
- reporters: process.env.GITHUB_ACTIONS
- ? ["verbose", "hanging-process", "github-actions"]
- : [process.env.TEST_COMPACT_OUTPUT ? "basic" : "verbose", "hanging-process"],
- coverage: {
- enabled: false,
- },
- diff: process.env.TEST_COMPACT_DIFF
- ? path.join(import.meta.dirname, "../scripts/vitest/vitest.diff.ts")
- : undefined,
- onConsoleLog: () => !process.env.TEST_QUIET_CONSOLE,
- },
-});
diff --git a/configs/vitest.config.base.unit.ts b/configs/vitest.config.base.unit.ts
deleted file mode 100644
index 1d1db00d80..0000000000
--- a/configs/vitest.config.base.unit.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import path from "node:path";
-import {defineConfig, mergeConfig} from "vitest/config";
-const __dirname = new URL(".", import.meta.url).pathname;
-import sharedConfig from "./vitest.config.base.js";
-
-export default mergeConfig(
- sharedConfig,
- defineConfig({
- test: {
- coverage: {
- enabled: process.env.CI === "true",
- clean: true,
- all: false,
- extension: [".ts"],
- provider: "v8",
- reporter: [["lcovonly", {file: "lcov.info"}], ["text"]],
- reportsDirectory: "./coverage",
- exclude: [
- "**/*.d.ts",
- "**/*.js",
- "**/lib/**",
- "**/coverage/**",
- "**/scripts/**",
- "**/test/**",
- "**/types/**",
- "**/bin/**",
- "**/node_modules/**",
- "**/spec-tests/**",
- "**/spec-tests-bls/**",
- ],
- },
- // There are some tests which are taking huge time
- // test/unit/chain/rewards/blockRewards.test.ts > chain / rewards / blockRewards > Normal case 73869ms
- // for now I tried to identify such tests an increase the limit a bit higher
- testTimeout: 20_000,
- hookTimeout: 20_000,
- },
- })
-);
diff --git a/configs/vitest.config.base.browser.ts b/configs/vitest.config.browser.ts
similarity index 71%
rename from configs/vitest.config.base.browser.ts
rename to configs/vitest.config.browser.ts
index 39380ad288..4d4b753e24 100644
--- a/configs/vitest.config.base.browser.ts
+++ b/configs/vitest.config.browser.ts
@@ -1,37 +1,19 @@
///
import path from "node:path";
-import {defineConfig} from "vitest/config";
-const __dirname = new URL(".", import.meta.url).pathname;
import {nodePolyfills} from "vite-plugin-node-polyfills";
import topLevelAwait from "vite-plugin-top-level-await";
+import {defineProject} from "vitest/config";
import {blsBrowserPlugin} from "../scripts/vite/plugins/blsBrowserPlugin.js";
-export default defineConfig({
- plugins: [
- topLevelAwait(),
- blsBrowserPlugin(),
- nodePolyfills({
- include: ["buffer", "process", "util", "string_decoder", "url", "querystring", "events"],
- globals: {Buffer: true, process: true},
- protocolImports: true,
- }),
- ],
+export const browserTestProject = defineProject({
test: {
- include: ["**/*.test.ts"],
- exclude: [
- "**/*.node.test.ts",
- "**/node_modules/**",
- "**/dist/**",
- "**/lib/**",
- "**/cypress/**",
- "**/.{idea,git,cache,output,temp}/**",
- "**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*",
- ],
- setupFiles: [path.join(__dirname, "../scripts/vitest/setupFiles/customMatchers.ts")],
- reporters: ["default", "hanging-process"],
- coverage: {
- enabled: false,
+ name: "browser",
+ include: ["**/test/browser/**/*.test.ts"],
+ exclude: ["**/*.node.test.ts"],
+ setupFiles: [path.join(import.meta.dirname, "../scripts/vitest/setupFiles/customMatchers.ts")],
+ env: {
+ LODESTAR_PRESET: "minimal",
},
browser: {
enabled: true,
@@ -64,9 +46,18 @@ export default defineConfig({
],
},
},
+ plugins: [
+ topLevelAwait(),
+ blsBrowserPlugin(),
+ nodePolyfills({
+ include: ["buffer", "process", "util", "string_decoder", "url", "querystring", "events"],
+ globals: {Buffer: true, process: true},
+ protocolImports: true,
+ }),
+ ],
resolve: {
alias: {
- "node:perf_hooks": path.join(__dirname, "../scripts/vitest/polyfills/perf_hooks.js"),
+ "node:perf_hooks": path.join(import.meta.dirname, "../scripts/vitest/polyfills/perf_hooks.js"),
},
},
optimizeDeps: {
diff --git a/configs/vitest.config.e2e.ts b/configs/vitest.config.e2e.ts
new file mode 100644
index 0000000000..4d29b9a1c8
--- /dev/null
+++ b/configs/vitest.config.e2e.ts
@@ -0,0 +1,45 @@
+import path from "node:path";
+import {defineProject} from "vitest/config";
+
+export const e2eProject = defineProject({
+ test: {
+ name: "e2e",
+ include: ["**/test/e2e/**/*.test.ts"],
+ setupFiles: [
+ path.join(__dirname, "../scripts/vitest/setupFiles/customMatchers.ts"),
+ path.join(__dirname, "../scripts/vitest/setupFiles/dotenv.ts"),
+ path.join(__dirname, "../scripts/vitest/setupFiles/lodestarPreset.ts"),
+ ],
+ env: {
+ LODESTAR_PRESET: "minimal",
+ },
+ pool: "forks",
+ poolOptions: {
+ forks: {
+ singleFork: true,
+ },
+ },
+ },
+});
+
+export const e2eMainnetProject = defineProject({
+ test: {
+ // Currently only `e2e` tests for the `validator` package runs with the `mainnet` preset.
+ name: "e2e-mainnet",
+ include: ["**/test/e2e-mainnet/**/*.test.ts"],
+ setupFiles: [
+ path.join(__dirname, "../scripts/vitest/setupFiles/customMatchers.ts"),
+ path.join(__dirname, "../scripts/vitest/setupFiles/dotenv.ts"),
+ path.join(__dirname, "../scripts/vitest/setupFiles/lodestarPreset.ts"),
+ ],
+ env: {
+ LODESTAR_PRESET: "mainnet",
+ },
+ pool: "forks",
+ poolOptions: {
+ forks: {
+ singleFork: true,
+ },
+ },
+ },
+});
diff --git a/configs/vitest.config.spec.ts b/configs/vitest.config.spec.ts
new file mode 100644
index 0000000000..29eb49bb3e
--- /dev/null
+++ b/configs/vitest.config.spec.ts
@@ -0,0 +1,44 @@
+import path from "node:path";
+import {defineProject} from "vitest/config";
+
+export const specProjectMinimal = defineProject({
+ test: {
+ name: "spec",
+ include: ["**/test/spec/**/*.test.ts"],
+ setupFiles: [
+ path.join(__dirname, "../scripts/vitest/setupFiles/customMatchers.ts"),
+ path.join(__dirname, "../scripts/vitest/setupFiles/dotenv.ts"),
+ path.join(__dirname, "../scripts/vitest/setupFiles/lodestarPreset.ts"),
+ ],
+ // There are tests which is taking over 10 minutes.
+ // ✓ test/spec/presets/epoch_processing.test.ts > electra/epoch_processing/rewards_and_penalties/pyspec_tests > electra/epoch_processing/rewards_and_penalties/pyspec_tests/full_attestations_one_validaor_one_gwei 572377ms
+ // So I have to increase these values to such extreme
+ testTimeout: 1000 * 60 * 15,
+ hookTimeout: 1000 * 60 * 15,
+ pool: "forks",
+ env: {
+ LODESTAR_PRESET: "minimal",
+ },
+ },
+});
+
+export const specProjectMainnet = defineProject({
+ test: {
+ name: "spec-mainnet",
+ include: ["**/test/spec/**/*.test.ts"],
+ setupFiles: [
+ path.join(__dirname, "../scripts/vitest/setupFiles/customMatchers.ts"),
+ path.join(__dirname, "../scripts/vitest/setupFiles/dotenv.ts"),
+ path.join(__dirname, "../scripts/vitest/setupFiles/lodestarPreset.ts"),
+ ],
+ // There are tests which is taking over 10 minutes.
+ // ✓ test/spec/presets/epoch_processing.test.ts > electra/epoch_processing/rewards_and_penalties/pyspec_tests > electra/epoch_processing/rewards_and_penalties/pyspec_tests/full_attestations_one_validaor_one_gwei 572377ms
+ // So I have to increase these values to such extreme
+ testTimeout: 1000 * 60 * 15,
+ hookTimeout: 1000 * 60 * 15,
+ pool: "forks",
+ env: {
+ LODESTAR_PRESET: "mainnet",
+ },
+ },
+});
diff --git a/configs/vitest.config.types.ts b/configs/vitest.config.types.ts
new file mode 100644
index 0000000000..245c98267f
--- /dev/null
+++ b/configs/vitest.config.types.ts
@@ -0,0 +1,17 @@
+import path from "node:path";
+import {defineProject} from "vitest/config";
+
+export const typesTestProject = defineProject({
+ test: {
+ name: "types",
+ include: ["**/test/types/**/*.d.ts"],
+ setupFiles: [
+ path.join(import.meta.dirname, "../scripts/vitest/setupFiles/customMatchers.ts"),
+ path.join(import.meta.dirname, "../scripts/vitest/setupFiles/dotenv.ts"),
+ path.join(import.meta.dirname, "../scripts/vitest/setupFiles/lodestarPreset.ts"),
+ ],
+ typecheck: {
+ enabled: true,
+ },
+ },
+});
diff --git a/configs/vitest.config.unit.ts b/configs/vitest.config.unit.ts
new file mode 100644
index 0000000000..72ab2f2179
--- /dev/null
+++ b/configs/vitest.config.unit.ts
@@ -0,0 +1,42 @@
+import path from "node:path";
+import {defineProject} from "vitest/config";
+
+const setupFiles = [
+ path.join(import.meta.dirname, "../scripts/vitest/setupFiles/customMatchers.ts"),
+ path.join(import.meta.dirname, "../scripts/vitest/setupFiles/dotenv.ts"),
+ path.join(import.meta.dirname, "../scripts/vitest/setupFiles/lodestarPreset.ts"),
+];
+
+export const unitTestProject = defineProject({
+ test: {
+ name: "unit",
+ include: ["**/test/unit/**/*.test.ts"],
+ setupFiles,
+ // There are some tests which are taking huge time
+ // test/unit/chain/rewards/blockRewards.test.ts > chain / rewards / blockRewards > Normal case 73869ms
+ // for now I tried to identify such tests an increase the limit a bit higher
+ testTimeout: 20_000,
+ hookTimeout: 20_000,
+ pool: "forks",
+ env: {
+ LODESTAR_PRESET: "minimal",
+ },
+ },
+});
+
+export const unitTestMainnetProject = defineProject({
+ test: {
+ name: "unit-mainnet",
+ include: ["**/test/unit-mainnet/**/*.test.ts"],
+ setupFiles,
+ // There are some tests which are taking huge time
+ // test/unit/chain/rewards/blockRewards.test.ts > chain / rewards / blockRewards > Normal case 73869ms
+ // for now I tried to identify such tests an increase the limit a bit higher
+ testTimeout: 20_000,
+ hookTimeout: 20_000,
+ pool: "forks",
+ env: {
+ LODESTAR_PRESET: "mainnet",
+ },
+ },
+});
diff --git a/package.json b/package.json
index 9af954a21a..6ba4181aaa 100644
--- a/package.json
+++ b/package.json
@@ -28,12 +28,11 @@
"docs:lint": "prettier '**/*.md' --check",
"docs:lint:fix": "prettier '**/*.md' --write",
"test": "lerna run test --concurrency 1",
- "test:unit": "lerna run test:unit --concurrency 1",
- "test:browsers": "lerna run test:browsers --concurrency 1",
- "test:e2e": "lerna run test:e2e --concurrency 1",
- "test:e2e:sim": "lerna run test:e2e:sim",
+ "test:unit": "vitest --project unit --project unit-mainnet",
+ "test:browsers": "vitest --project browser",
+ "test:e2e": "vitest --project e2e",
"download-spec-tests": "lerna run download-spec-tests",
- "test:spec": "lerna run test:spec",
+ "test:spec": "vitest --project spec",
"benchmark": "yarn benchmark:files 'packages/*/test/perf/**/*.test.ts'",
"benchmark:files": "NODE_OPTIONS='--max-old-space-size=4096 --loader=ts-node/esm' benchmark --config .benchrc.yaml --defaultBranch unstable",
"release:create-rc": "node scripts/release/create_rc.mjs",
diff --git a/packages/api/package.json b/packages/api/package.json
index ff5477515e..9dd77d93ab 100644
--- a/packages/api/package.json
+++ b/packages/api/package.json
@@ -66,7 +66,7 @@
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit",
- "test:unit": "vitest run --dir test/unit/",
+ "test:unit": "vitest run --project unit",
"check-readme": "typescript-docs-verifier"
},
"dependencies": {
diff --git a/packages/api/test/globalSetup.ts b/packages/api/test/globalSetup.ts
deleted file mode 100644
index 0ab57c0574..0000000000
--- a/packages/api/test/globalSetup.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export async function setup(): Promise {}
-export async function teardown(): Promise {}
diff --git a/packages/api/test/unit/beacon/genericServerTest/beacon.test.ts b/packages/api/test/unit-mainnet/beacon/genericServerTest/beacon.test.ts
similarity index 100%
rename from packages/api/test/unit/beacon/genericServerTest/beacon.test.ts
rename to packages/api/test/unit-mainnet/beacon/genericServerTest/beacon.test.ts
diff --git a/packages/api/test/unit/beacon/genericServerTest/config.test.ts b/packages/api/test/unit-mainnet/beacon/genericServerTest/config.test.ts
similarity index 100%
rename from packages/api/test/unit/beacon/genericServerTest/config.test.ts
rename to packages/api/test/unit-mainnet/beacon/genericServerTest/config.test.ts
diff --git a/packages/api/test/unit/beacon/genericServerTest/debug.test.ts b/packages/api/test/unit-mainnet/beacon/genericServerTest/debug.test.ts
similarity index 100%
rename from packages/api/test/unit/beacon/genericServerTest/debug.test.ts
rename to packages/api/test/unit-mainnet/beacon/genericServerTest/debug.test.ts
diff --git a/packages/api/test/unit/beacon/genericServerTest/events.test.ts b/packages/api/test/unit-mainnet/beacon/genericServerTest/events.test.ts
similarity index 100%
rename from packages/api/test/unit/beacon/genericServerTest/events.test.ts
rename to packages/api/test/unit-mainnet/beacon/genericServerTest/events.test.ts
diff --git a/packages/api/test/unit/beacon/genericServerTest/lightclient.test.ts b/packages/api/test/unit-mainnet/beacon/genericServerTest/lightclient.test.ts
similarity index 100%
rename from packages/api/test/unit/beacon/genericServerTest/lightclient.test.ts
rename to packages/api/test/unit-mainnet/beacon/genericServerTest/lightclient.test.ts
diff --git a/packages/api/test/unit/beacon/genericServerTest/lodestar.test.ts b/packages/api/test/unit-mainnet/beacon/genericServerTest/lodestar.test.ts
similarity index 100%
rename from packages/api/test/unit/beacon/genericServerTest/lodestar.test.ts
rename to packages/api/test/unit-mainnet/beacon/genericServerTest/lodestar.test.ts
diff --git a/packages/api/test/unit/beacon/genericServerTest/node.test.ts b/packages/api/test/unit-mainnet/beacon/genericServerTest/node.test.ts
similarity index 100%
rename from packages/api/test/unit/beacon/genericServerTest/node.test.ts
rename to packages/api/test/unit-mainnet/beacon/genericServerTest/node.test.ts
diff --git a/packages/api/test/unit/beacon/genericServerTest/proofs.test.ts b/packages/api/test/unit-mainnet/beacon/genericServerTest/proofs.test.ts
similarity index 100%
rename from packages/api/test/unit/beacon/genericServerTest/proofs.test.ts
rename to packages/api/test/unit-mainnet/beacon/genericServerTest/proofs.test.ts
diff --git a/packages/api/test/unit/beacon/genericServerTest/validator.test.ts b/packages/api/test/unit-mainnet/beacon/genericServerTest/validator.test.ts
similarity index 100%
rename from packages/api/test/unit/beacon/genericServerTest/validator.test.ts
rename to packages/api/test/unit-mainnet/beacon/genericServerTest/validator.test.ts
diff --git a/packages/api/test/unit/beacon/oapiSpec.test.ts b/packages/api/test/unit-mainnet/beacon/oapiSpec.test.ts
similarity index 100%
rename from packages/api/test/unit/beacon/oapiSpec.test.ts
rename to packages/api/test/unit-mainnet/beacon/oapiSpec.test.ts
diff --git a/packages/api/test/unit/beacon/testData/beacon.ts b/packages/api/test/unit-mainnet/beacon/testData/beacon.ts
similarity index 100%
rename from packages/api/test/unit/beacon/testData/beacon.ts
rename to packages/api/test/unit-mainnet/beacon/testData/beacon.ts
diff --git a/packages/api/test/unit/beacon/testData/config.ts b/packages/api/test/unit-mainnet/beacon/testData/config.ts
similarity index 100%
rename from packages/api/test/unit/beacon/testData/config.ts
rename to packages/api/test/unit-mainnet/beacon/testData/config.ts
diff --git a/packages/api/test/unit/beacon/testData/debug.ts b/packages/api/test/unit-mainnet/beacon/testData/debug.ts
similarity index 100%
rename from packages/api/test/unit/beacon/testData/debug.ts
rename to packages/api/test/unit-mainnet/beacon/testData/debug.ts
diff --git a/packages/api/test/unit/beacon/testData/events.ts b/packages/api/test/unit-mainnet/beacon/testData/events.ts
similarity index 100%
rename from packages/api/test/unit/beacon/testData/events.ts
rename to packages/api/test/unit-mainnet/beacon/testData/events.ts
diff --git a/packages/api/test/unit/beacon/testData/lightclient.ts b/packages/api/test/unit-mainnet/beacon/testData/lightclient.ts
similarity index 100%
rename from packages/api/test/unit/beacon/testData/lightclient.ts
rename to packages/api/test/unit-mainnet/beacon/testData/lightclient.ts
diff --git a/packages/api/test/unit/beacon/testData/node.ts b/packages/api/test/unit-mainnet/beacon/testData/node.ts
similarity index 100%
rename from packages/api/test/unit/beacon/testData/node.ts
rename to packages/api/test/unit-mainnet/beacon/testData/node.ts
diff --git a/packages/api/test/unit/beacon/testData/proofs.ts b/packages/api/test/unit-mainnet/beacon/testData/proofs.ts
similarity index 100%
rename from packages/api/test/unit/beacon/testData/proofs.ts
rename to packages/api/test/unit-mainnet/beacon/testData/proofs.ts
diff --git a/packages/api/test/unit/beacon/testData/validator.ts b/packages/api/test/unit-mainnet/beacon/testData/validator.ts
similarity index 100%
rename from packages/api/test/unit/beacon/testData/validator.ts
rename to packages/api/test/unit-mainnet/beacon/testData/validator.ts
diff --git a/packages/api/vitest.config.ts b/packages/api/vitest.config.ts
deleted file mode 100644
index d0a25aac71..0000000000
--- a/packages/api/vitest.config.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- restoreMocks: true,
- },
- })
-);
diff --git a/packages/beacon-node/package.json b/packages/beacon-node/package.json
index 095ee0f702..89d115cf21 100644
--- a/packages/beacon-node/package.json
+++ b/packages/beacon-node/package.json
@@ -78,18 +78,16 @@
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit && yarn test:e2e",
- "test:unit:minimal": "LODESTAR_PRESET=minimal vitest run --min-workers=1 --max-workers=1 --dir test/unit/",
- "test:unit:mainnet": "LODESTAR_PRESET=mainnet vitest run --min-workers=1 --max-workers=1 --dir test/unit-mainnet",
- "test:unit": "wrapper() { yarn test:unit:minimal $@ && yarn test:unit:mainnet $@; }; wrapper",
- "test:e2e": "LODESTAR_PRESET=minimal vitest run --config vitest.e2e.config.ts --dir test/e2e",
+ "test:unit": "vitest run --project unit --project unit-mainnet",
+ "test:e2e": "vitest run --project e2e",
"test:sim": "vitest run test/sim/**/*.test.ts",
"test:sim:mergemock": "vitest run test/sim/mergemock.test.ts",
"test:sim:blobs": "vitest run test/sim/4844-interop.test.ts",
"download-spec-tests": "node --loader=ts-node/esm test/spec/downloadTests.ts",
- "test:spec:bls": "vitest run --config vitest.spec.config.ts --dir test/spec/bls/",
- "test:spec:general": "vitest run --config vitest.spec.config.ts --dir test/spec/general/",
- "test:spec:minimal": "LODESTAR_PRESET=minimal vitest run --config vitest.spec.config.ts --dir test/spec/presets/",
- "test:spec:mainnet": "LODESTAR_PRESET=mainnet vitest run --config vitest.spec.config.ts --dir test/spec/presets/",
+ "test:spec:bls": "vitest run --project spec test/spec/bls/",
+ "test:spec:general": "vitest run --project spec test/spec/general/",
+ "test:spec:minimal": "vitest run --project spec test/spec/presets/",
+ "test:spec:mainnet": "vitest run --project spec-mainnet test/spec/presets/",
"test:spec": "yarn test:spec:bls && yarn test:spec:general && yarn test:spec:minimal && yarn test:spec:mainnet",
"check-readme": "typescript-docs-verifier"
},
diff --git a/packages/beacon-node/test/globalSetup.ts b/packages/beacon-node/test/globalSetup.ts
deleted file mode 100644
index 784633baf2..0000000000
--- a/packages/beacon-node/test/globalSetup.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import {PresetName, setActivePreset} from "@lodestar/params/setPreset";
-
-export async function setup(): Promise {
- process.env.NODE_ENV = "test";
-
- // Set minimal
- if (process.env.LODESTAR_PRESET === undefined) {
- process.env.LODESTAR_PRESET = "minimal";
- }
-
- // Override FIELD_ELEMENTS_PER_BLOB if its a dev run, mostly to distinguish from
- // spec runs
- if (process.env.LODESTAR_PRESET === "minimal" && process.env.DEV_RUN) {
- setActivePreset(PresetName.minimal, {FIELD_ELEMENTS_PER_BLOB: 4096});
- }
-}
-
-export async function teardown(): Promise {
- // if (teardownHappened) throw new Error("teardown called twice");
- // teardownHappened = true;
- // tear it down here
- // await server.close()
- // await sleep(25);
- // const duration = Date.now() - start
- // console.log(`globalTeardown named-exports.js, took ${(duration)}ms`)
- // if (duration > 4000)
- // throw new Error('error from teardown in globalSetup named-exports.js')
-}
diff --git a/packages/beacon-node/vitest.config.ts b/packages/beacon-node/vitest.config.ts
deleted file mode 100644
index 7c7bbc38a2..0000000000
--- a/packages/beacon-node/vitest.config.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import {buildTargetPlugin} from "../../scripts/vite/plugins/buildTargetPlugin.js";
-import vitestConfig from "../../configs/vitest.config.base.unit.js";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- // We need to change the build target to test code which is based on `using` keyword
- // Note this target is not fully supported for the browsers
- plugins: [buildTargetPlugin("es2022")],
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/beacon-node/vitest.e2e.config.ts b/packages/beacon-node/vitest.e2e.config.ts
deleted file mode 100644
index 99ef515498..0000000000
--- a/packages/beacon-node/vitest.e2e.config.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import {buildTargetPlugin} from "../../scripts/vite/plugins/buildTargetPlugin";
-import vitestConfig from "../../configs/vitest.config.base.e2e";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- // We need to change the build target to test code which is based on `using` keyword
- // Note this target is not fully supported for the browsers
- plugins: [buildTargetPlugin("es2022")],
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/beacon-node/vitest.spec.config.ts b/packages/beacon-node/vitest.spec.config.ts
deleted file mode 100644
index c0a04e9bdf..0000000000
--- a/packages/beacon-node/vitest.spec.config.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import {buildTargetPlugin} from "../../scripts/vite/plugins/buildTargetPlugin";
-import vitestConfig from "../../configs/vitest.config.base.spec";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- // We need to change the build target to test code which is based on `using` keyword
- // Note this target is not fully supported for the browsers
- plugins: [buildTargetPlugin("es2022")],
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/cli/package.json b/packages/cli/package.json
index 862b88e52f..af6d13a8ed 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -30,8 +30,8 @@
"docs:build": "node --loader ts-node/esm ./docsgen/index.ts",
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
- "test:unit": "vitest run --min-workers=1 --max-workers=1 --dir test/unit/",
- "test:e2e": "vitest run --config vitest.e2e.config.ts --dir test/e2e/",
+ "test:unit": "vitest run --project unit --project unit-mainnet",
+ "test:e2e": "vitest run --project e2e",
"test:sim:multifork": "LODESTAR_PRESET=minimal DOTENV_CONFIG_PATH=../../.env.test node -r dotenv/config --loader ts-node/esm test/sim/multiFork.test.ts",
"test:sim:mixedclient": "LODESTAR_PRESET=minimal DOTENV_CONFIG_PATH=../../.env.test node -r dotenv/config --loader ts-node/esm test/sim/mixedClient.test.ts",
"test:sim:endpoints": "LODESTAR_PRESET=minimal DOTENV_CONFIG_PATH=../../.env.test node -r dotenv/config --loader ts-node/esm test/sim/endpoints.test.ts",
diff --git a/packages/cli/test/e2e/voluntaryExitRemoteSigner.test.ts b/packages/cli/test/e2e/voluntaryExitRemoteSigner.test.ts
index 172f79c519..c527e161d6 100644
--- a/packages/cli/test/e2e/voluntaryExitRemoteSigner.test.ts
+++ b/packages/cli/test/e2e/voluntaryExitRemoteSigner.test.ts
@@ -15,7 +15,7 @@ import {afterAll, beforeAll, describe, it, onTestFinished, vi} from "vitest";
import {testFilesDir} from "../utils.js";
describe("voluntaryExit using remote signer", () => {
- vi.setConfig({testTimeout: 30_000});
+ vi.setConfig({testTimeout: 30_000, hookTimeout: 30_000});
let externalSigner: StartedExternalSigner;
@@ -31,7 +31,9 @@ describe("voluntaryExit using remote signer", () => {
});
afterAll(async () => {
- await externalSigner.container.stop();
+ if (externalSigner) {
+ await externalSigner.container.stop();
+ }
});
it("Perform a voluntary exit", async () => {
diff --git a/packages/cli/test/globalSetup.ts b/packages/cli/test/globalSetup.ts
deleted file mode 100644
index 02074bb24d..0000000000
--- a/packages/cli/test/globalSetup.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export async function setup(): Promise {
- process.env.NODE_ENV = "test";
-}
-export async function teardown(): Promise {}
diff --git a/packages/cli/test/unit-mainnet/cmds/beacon.test.ts b/packages/cli/test/unit-mainnet/cmds/beacon.test.ts
new file mode 100644
index 0000000000..746b013c25
--- /dev/null
+++ b/packages/cli/test/unit-mainnet/cmds/beacon.test.ts
@@ -0,0 +1,29 @@
+import {LogLevel} from "@lodestar/utils";
+import {describe, expect, it} from "vitest";
+import {beaconHandlerInit} from "../../../src/cmds/beacon/handler.js";
+import {BeaconArgs} from "../../../src/cmds/beacon/options.js";
+import {GlobalArgs} from "../../../src/options/globalOptions.js";
+import {testFilesDir} from "../../utils.js";
+
+describe("cmds / beacon / args handler", () => {
+ // Make tests faster skipping a network call
+ process.env.SKIP_FETCH_NETWORK_BOOTNODES = "true";
+
+ it("Set known deposit contract", async () => {
+ const {options} = await runBeaconHandlerInit({
+ network: "mainnet",
+ });
+
+ // Okay to hardcode, since this value will never change
+ expect(options.eth1.depositContractDeployBlock).toBe(11052984);
+ });
+});
+
+async function runBeaconHandlerInit(args: Partial) {
+ return beaconHandlerInit({
+ logLevel: LogLevel.info,
+ logFileLevel: LogLevel.debug,
+ dataDir: testFilesDir,
+ ...args,
+ } as BeaconArgs & GlobalArgs);
+}
diff --git a/packages/cli/test/unit/config/beaconParams.test.ts b/packages/cli/test/unit-mainnet/config/beaconParams.test.ts
similarity index 100%
rename from packages/cli/test/unit/config/beaconParams.test.ts
rename to packages/cli/test/unit-mainnet/config/beaconParams.test.ts
diff --git a/packages/cli/test/unit/cmds/beacon.test.ts b/packages/cli/test/unit/cmds/beacon.test.ts
index 77f62bcfa8..7a28a8289f 100644
--- a/packages/cli/test/unit/cmds/beacon.test.ts
+++ b/packages/cli/test/unit/cmds/beacon.test.ts
@@ -78,15 +78,6 @@ describe("cmds / beacon / args handler", () => {
expect(privateKey.equals(prevPk)).toBe(true);
});
- it("Set known deposit contract", async () => {
- const {options} = await runBeaconHandlerInit({
- network: "mainnet",
- });
-
- // Okay to hardcode, since this value will never change
- expect(options.eth1.depositContractDeployBlock).toBe(11052984);
- });
-
it("Apply custom network name from config file", async () => {
const networkName = "test-network";
const config = {...chainConfig};
diff --git a/packages/cli/test/unit/options/beaconNodeOptions.test.ts b/packages/cli/test/unit/options/beaconNodeOptions.test.ts
index c45994ecb8..fc3cf00317 100644
--- a/packages/cli/test/unit/options/beaconNodeOptions.test.ts
+++ b/packages/cli/test/unit/options/beaconNodeOptions.test.ts
@@ -220,7 +220,7 @@ describe("options / beaconNodeOptions", () => {
},
sync: {
isSingleNode: true,
- slotImportTolerance: 32,
+ slotImportTolerance: 8,
disableProcessAsChainSegment: true,
backfillBatchSize: 64,
disableRangeSync: false,
diff --git a/packages/cli/vitest.config.ts b/packages/cli/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/cli/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/cli/vitest.e2e.config.ts b/packages/cli/vitest.e2e.config.ts
deleted file mode 100644
index cdce1a72ef..0000000000
--- a/packages/cli/vitest.e2e.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.e2e";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/config/package.json b/packages/config/package.json
index c04e2fed7e..ec579f9692 100644
--- a/packages/config/package.json
+++ b/packages/config/package.json
@@ -50,7 +50,7 @@
"lint": "biome check src/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit",
- "test:unit": "yarn vitest run --dir test/unit/",
+ "test:unit": "yarn vitest run --project unit",
"check-readme": "typescript-docs-verifier"
},
"repository": {
diff --git a/packages/config/test/globalSetup.ts b/packages/config/test/globalSetup.ts
deleted file mode 100644
index 0ab57c0574..0000000000
--- a/packages/config/test/globalSetup.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export async function setup(): Promise {}
-export async function teardown(): Promise {}
diff --git a/packages/config/vitest.config.ts b/packages/config/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/config/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/db/package.json b/packages/db/package.json
index c90ece9567..b4f34f455f 100644
--- a/packages/db/package.json
+++ b/packages/db/package.json
@@ -31,7 +31,7 @@
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit",
- "test:unit": "vitest run --dir test/unit/",
+ "test:unit": "vitest run --project unit",
"check-readme": "typescript-docs-verifier"
},
"dependencies": {
diff --git a/packages/db/test/globalSetup.ts b/packages/db/test/globalSetup.ts
deleted file mode 100644
index 02074bb24d..0000000000
--- a/packages/db/test/globalSetup.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export async function setup(): Promise {
- process.env.NODE_ENV = "test";
-}
-export async function teardown(): Promise {}
diff --git a/packages/db/vitest.config.ts b/packages/db/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/db/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/flare/package.json b/packages/flare/package.json
index 051d337644..a238734555 100644
--- a/packages/flare/package.json
+++ b/packages/flare/package.json
@@ -44,7 +44,7 @@
"lint": "biome check src/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit",
- "test:unit": "vitest run --dir test/unit/",
+ "test:unit": "vitest run --project unit",
"check-readme": "typescript-docs-verifier"
},
"repository": {
diff --git a/packages/flare/test/globalSetup.ts b/packages/flare/test/globalSetup.ts
deleted file mode 100644
index 0ab57c0574..0000000000
--- a/packages/flare/test/globalSetup.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export async function setup(): Promise {}
-export async function teardown(): Promise {}
diff --git a/packages/flare/vitest.config.ts b/packages/flare/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/flare/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/fork-choice/package.json b/packages/fork-choice/package.json
index 8c3ba438d7..464cd42610 100644
--- a/packages/fork-choice/package.json
+++ b/packages/fork-choice/package.json
@@ -32,7 +32,7 @@
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit",
- "test:unit": "vitest run --min-workers=1 --max-workers=1 --dir test/unit/",
+ "test:unit": "vitest run --project unit --project unit-mainnet",
"check-readme": "typescript-docs-verifier"
},
"dependencies": {
diff --git a/packages/fork-choice/test/globalSetup.ts b/packages/fork-choice/test/globalSetup.ts
deleted file mode 100644
index 0ab57c0574..0000000000
--- a/packages/fork-choice/test/globalSetup.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export async function setup(): Promise {}
-export async function teardown(): Promise {}
diff --git a/packages/fork-choice/test/unit/forkChoice/forkChoice.test.ts b/packages/fork-choice/test/unit-mainnet/forkChoice/forkChoice.test.ts
similarity index 100%
rename from packages/fork-choice/test/unit/forkChoice/forkChoice.test.ts
rename to packages/fork-choice/test/unit-mainnet/forkChoice/forkChoice.test.ts
diff --git a/packages/fork-choice/test/unit/forkChoice/getProposerHead.test.ts b/packages/fork-choice/test/unit-mainnet/forkChoice/getProposerHead.test.ts
similarity index 100%
rename from packages/fork-choice/test/unit/forkChoice/getProposerHead.test.ts
rename to packages/fork-choice/test/unit-mainnet/forkChoice/getProposerHead.test.ts
diff --git a/packages/fork-choice/vitest.config.ts b/packages/fork-choice/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/fork-choice/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/light-client/package.json b/packages/light-client/package.json
index e1f1d73713..dc0b9091ec 100644
--- a/packages/light-client/package.json
+++ b/packages/light-client/package.json
@@ -65,8 +65,8 @@
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit",
- "test:unit": "vitest run --dir test/unit/",
- "test:browsers": "yarn run build:bundle && vitest run --config ./vitest.browser.config.ts --dir test/unit",
+ "test:unit": "vitest run --project unit",
+ "test:browsers": "yarn run build:bundle && vitest run --project browser",
"check-readme": "typescript-docs-verifier"
},
"dependencies": {
diff --git a/packages/light-client/test/browser b/packages/light-client/test/browser
new file mode 120000
index 0000000000..9719cc86da
--- /dev/null
+++ b/packages/light-client/test/browser
@@ -0,0 +1 @@
+./unit
\ No newline at end of file
diff --git a/packages/light-client/test/globalSetup.ts b/packages/light-client/test/globalSetup.ts
deleted file mode 100644
index 0ab57c0574..0000000000
--- a/packages/light-client/test/globalSetup.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export async function setup(): Promise {}
-export async function teardown(): Promise {}
diff --git a/packages/light-client/vitest.browser.config.ts b/packages/light-client/vitest.browser.config.ts
deleted file mode 100644
index bb51b082d2..0000000000
--- a/packages/light-client/vitest.browser.config.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.browser";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- optimizeDeps: {
- exclude: ["@chainsafe/blst"],
- },
- })
-);
diff --git a/packages/light-client/vitest.config.ts b/packages/light-client/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/light-client/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/logger/package.json b/packages/logger/package.json
index aa67007d55..9d5c88b0fd 100644
--- a/packages/logger/package.json
+++ b/packages/logger/package.json
@@ -56,9 +56,9 @@
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit && yarn test:e2e",
- "test:unit": "vitest run --dir test/unit/",
- "test:browsers": "vitest run --config ./vitest.browser.config.ts --dir test/unit",
- "test:e2e": "vitest run --config vitest.e2e.config.ts --dir test/e2e",
+ "test:unit": "vitest run --project unit",
+ "test:browsers": "vitest run --project browser",
+ "test:e2e": "vitest run --project e2e",
"check-readme": "typescript-docs-verifier"
},
"types": "lib/index.d.ts",
diff --git a/packages/logger/test/browser b/packages/logger/test/browser
new file mode 120000
index 0000000000..9719cc86da
--- /dev/null
+++ b/packages/logger/test/browser
@@ -0,0 +1 @@
+./unit
\ No newline at end of file
diff --git a/packages/logger/vitest.browser.config.ts b/packages/logger/vitest.browser.config.ts
deleted file mode 100644
index bb51b082d2..0000000000
--- a/packages/logger/vitest.browser.config.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.browser";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- optimizeDeps: {
- exclude: ["@chainsafe/blst"],
- },
- })
-);
diff --git a/packages/logger/vitest.config.ts b/packages/logger/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/logger/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/logger/vitest.e2e.config.ts b/packages/logger/vitest.e2e.config.ts
deleted file mode 100644
index cdce1a72ef..0000000000
--- a/packages/logger/vitest.e2e.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.e2e";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/params/package.json b/packages/params/package.json
index 53c868e286..313f128d03 100644
--- a/packages/params/package.json
+++ b/packages/params/package.json
@@ -53,9 +53,9 @@
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit",
- "test:unit": "vitest run --dir test/unit/",
- "test:browsers": "vitest run --config ./vitest.browser.config.ts --dir test/unit",
- "test:e2e": "vitest run --config vitest.e2e.config.ts --dir test/e2e/",
+ "test:unit": "vitest run --project unit",
+ "test:browsers": "vitest run --project browser",
+ "test:e2e": "vitest run --project e2e",
"check-readme": "typescript-docs-verifier"
},
"repository": {
diff --git a/packages/params/test/browser b/packages/params/test/browser
new file mode 120000
index 0000000000..9719cc86da
--- /dev/null
+++ b/packages/params/test/browser
@@ -0,0 +1 @@
+./unit
\ No newline at end of file
diff --git a/packages/params/test/globalSetup.ts b/packages/params/test/globalSetup.ts
deleted file mode 100644
index 0ab57c0574..0000000000
--- a/packages/params/test/globalSetup.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export async function setup(): Promise {}
-export async function teardown(): Promise {}
diff --git a/packages/params/vitest.browser.config.ts b/packages/params/vitest.browser.config.ts
deleted file mode 100644
index bb51b082d2..0000000000
--- a/packages/params/vitest.browser.config.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.browser";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- optimizeDeps: {
- exclude: ["@chainsafe/blst"],
- },
- })
-);
diff --git a/packages/params/vitest.config.ts b/packages/params/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/params/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/params/vitest.e2e.config.ts b/packages/params/vitest.e2e.config.ts
deleted file mode 100644
index cdce1a72ef..0000000000
--- a/packages/params/vitest.e2e.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.e2e";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/prover/package.json b/packages/prover/package.json
index 0f6e6ec348..3e046cf6e6 100644
--- a/packages/prover/package.json
+++ b/packages/prover/package.json
@@ -51,9 +51,9 @@
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit && yarn test:e2e",
- "test:unit": "vitest run --dir test/unit/",
- "test:browsers": "vitest run --config ./vitest.browser.config.ts --dir test/unit",
- "test:e2e": "LODESTAR_PRESET=minimal vitest run --config vitest.e2e.config.ts --dir test/e2e",
+ "test:unit": "vitest run --project unit --project unit-mainnet",
+ "test:browsers": "vitest run --project browser",
+ "test:e2e": "vitest run --project e2e",
"check-readme": "typescript-docs-verifier",
"generate-fixtures": "node --loader ts-node/esm scripts/generate_fixtures.ts"
},
diff --git a/packages/prover/test/browser b/packages/prover/test/browser
new file mode 120000
index 0000000000..9719cc86da
--- /dev/null
+++ b/packages/prover/test/browser
@@ -0,0 +1 @@
+./unit
\ No newline at end of file
diff --git a/packages/prover/test/unit/verified_requests/eth_call.test.ts b/packages/prover/test/unit-mainnet/verified_requests/eth_call.test.ts
similarity index 100%
rename from packages/prover/test/unit/verified_requests/eth_call.test.ts
rename to packages/prover/test/unit-mainnet/verified_requests/eth_call.test.ts
diff --git a/packages/prover/test/unit/verified_requests/eth_estimateGas.test.ts b/packages/prover/test/unit-mainnet/verified_requests/eth_estimateGas.test.ts
similarity index 100%
rename from packages/prover/test/unit/verified_requests/eth_estimateGas.test.ts
rename to packages/prover/test/unit-mainnet/verified_requests/eth_estimateGas.test.ts
diff --git a/packages/prover/test/unit/verified_requests/eth_getBalance.test.ts b/packages/prover/test/unit-mainnet/verified_requests/eth_getBalance.test.ts
similarity index 100%
rename from packages/prover/test/unit/verified_requests/eth_getBalance.test.ts
rename to packages/prover/test/unit-mainnet/verified_requests/eth_getBalance.test.ts
diff --git a/packages/prover/test/unit/verified_requests/eth_getBlockByHash.test.ts b/packages/prover/test/unit-mainnet/verified_requests/eth_getBlockByHash.test.ts
similarity index 100%
rename from packages/prover/test/unit/verified_requests/eth_getBlockByHash.test.ts
rename to packages/prover/test/unit-mainnet/verified_requests/eth_getBlockByHash.test.ts
diff --git a/packages/prover/test/unit/verified_requests/eth_getBlockByNumber.test.ts b/packages/prover/test/unit-mainnet/verified_requests/eth_getBlockByNumber.test.ts
similarity index 100%
rename from packages/prover/test/unit/verified_requests/eth_getBlockByNumber.test.ts
rename to packages/prover/test/unit-mainnet/verified_requests/eth_getBlockByNumber.test.ts
diff --git a/packages/prover/test/unit/verified_requests/eth_getCode.test.ts b/packages/prover/test/unit-mainnet/verified_requests/eth_getCode.test.ts
similarity index 100%
rename from packages/prover/test/unit/verified_requests/eth_getCode.test.ts
rename to packages/prover/test/unit-mainnet/verified_requests/eth_getCode.test.ts
diff --git a/packages/prover/test/unit/verified_requests/eth_getTransactionCount.test.ts b/packages/prover/test/unit-mainnet/verified_requests/eth_getTransactionCount.test.ts
similarity index 100%
rename from packages/prover/test/unit/verified_requests/eth_getTransactionCount.test.ts
rename to packages/prover/test/unit-mainnet/verified_requests/eth_getTransactionCount.test.ts
diff --git a/packages/prover/vitest.browser.config.ts b/packages/prover/vitest.browser.config.ts
deleted file mode 100644
index bb51b082d2..0000000000
--- a/packages/prover/vitest.browser.config.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.browser";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- optimizeDeps: {
- exclude: ["@chainsafe/blst"],
- },
- })
-);
diff --git a/packages/prover/vitest.config.ts b/packages/prover/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/prover/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/prover/vitest.e2e.config.ts b/packages/prover/vitest.e2e.config.ts
deleted file mode 100644
index cdce1a72ef..0000000000
--- a/packages/prover/vitest.e2e.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.e2e";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/reqresp/package.json b/packages/reqresp/package.json
index 75e0bc601f..42fa381f0c 100644
--- a/packages/reqresp/package.json
+++ b/packages/reqresp/package.json
@@ -48,7 +48,7 @@
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit",
- "test:unit": "vitest run --dir test/unit/",
+ "test:unit": "vitest run --project unit",
"check-readme": "typescript-docs-verifier"
},
"dependencies": {
diff --git a/packages/reqresp/test/fixtures/messages.ts b/packages/reqresp/test/fixtures/messages.ts
index 4fa6c69e28..9c2c004fd8 100644
--- a/packages/reqresp/test/fixtures/messages.ts
+++ b/packages/reqresp/test/fixtures/messages.ts
@@ -164,8 +164,8 @@ export const sszSnappySignedBeaconBlockAltair: MessageFixture = {
"0x003f0000ee14ab0df8031064000000dafe01007a01000c995f0100010100090105ee70000d700054ee44000d44fe0100fecc0011cc0c400100003e0400fe01008e0100",
].map((d) => fromHexString(d)),
chunks: [
- "0xb404",
- "0xff060000734e6150705900420000bab7f8feb4041064000000dafe01007a01000c995f0100010100090105ee70000d700054ee44000d44fe0100fecc0011cc0c7c0100003e0400fe0100fe01007e0100",
+ "0xf803",
+ "0xff060000734e61507059003f0000ee14ab0df8031064000000dafe01007a01000c995f0100010100090105ee70000d700054ee44000d44fe0100fecc0011cc0c400100003e0400fe01008e0100",
].map((s) => fromHexString(s)),
};
diff --git a/packages/reqresp/test/globalSetup.ts b/packages/reqresp/test/globalSetup.ts
deleted file mode 100644
index 0ab57c0574..0000000000
--- a/packages/reqresp/test/globalSetup.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export async function setup(): Promise {}
-export async function teardown(): Promise {}
diff --git a/packages/reqresp/vitest.config.ts b/packages/reqresp/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/reqresp/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/spec-test-util/package.json b/packages/spec-test-util/package.json
index 721170a839..19348717e4 100644
--- a/packages/spec-test-util/package.json
+++ b/packages/spec-test-util/package.json
@@ -47,8 +47,8 @@
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit && yarn test:e2e",
- "test:unit": "vitest run --passWithNoTests --dir test/unit/",
- "test:e2e": "vitest run --config vitest.e2e.config.ts --dir test/e2e/",
+ "test:unit": "vitest run --project unit",
+ "test:e2e": "vitest run --project e2e",
"check-readme": "typescript-docs-verifier"
},
"repository": {
diff --git a/packages/spec-test-util/test/globalSetup.ts b/packages/spec-test-util/test/globalSetup.ts
deleted file mode 100644
index 0ab57c0574..0000000000
--- a/packages/spec-test-util/test/globalSetup.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export async function setup(): Promise {}
-export async function teardown(): Promise {}
diff --git a/packages/spec-test-util/vitest.config.ts b/packages/spec-test-util/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/spec-test-util/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/spec-test-util/vitest.e2e.config.ts b/packages/spec-test-util/vitest.e2e.config.ts
deleted file mode 100644
index cdce1a72ef..0000000000
--- a/packages/spec-test-util/vitest.e2e.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.e2e";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/state-transition/package.json b/packages/state-transition/package.json
index da3f7ee102..5aae88991c 100644
--- a/packages/state-transition/package.json
+++ b/packages/state-transition/package.json
@@ -53,7 +53,7 @@
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit",
- "test:unit": "vitest run --min-workers=1 --max-workers=1 --dir test/unit/",
+ "test:unit": "vitest run --project unit",
"check-readme": "typescript-docs-verifier"
},
"types": "lib/index.d.ts",
diff --git a/packages/state-transition/test/globalSetup.ts b/packages/state-transition/test/globalSetup.ts
deleted file mode 100644
index 0ab57c0574..0000000000
--- a/packages/state-transition/test/globalSetup.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export async function setup(): Promise {}
-export async function teardown(): Promise {}
diff --git a/packages/state-transition/test/unit/block/isValidIndexedAttestation.test.ts b/packages/state-transition/test/unit-mainnet/block/isValidIndexedAttestation.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/block/isValidIndexedAttestation.test.ts
rename to packages/state-transition/test/unit-mainnet/block/isValidIndexedAttestation.test.ts
diff --git a/packages/state-transition/test/unit/block/processConsolidationRequest.test.ts b/packages/state-transition/test/unit-mainnet/block/processConsolidationRequest.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/block/processConsolidationRequest.test.ts
rename to packages/state-transition/test/unit-mainnet/block/processConsolidationRequest.test.ts
diff --git a/packages/state-transition/test/unit/block/processWithdrawals.test.ts b/packages/state-transition/test/unit-mainnet/block/processWithdrawals.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/block/processWithdrawals.test.ts
rename to packages/state-transition/test/unit-mainnet/block/processWithdrawals.test.ts
diff --git a/packages/state-transition/test/unit/cachedBeaconState.test.ts b/packages/state-transition/test/unit-mainnet/cachedBeaconState.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/cachedBeaconState.test.ts
rename to packages/state-transition/test/unit-mainnet/cachedBeaconState.test.ts
diff --git a/packages/state-transition/test/unit/constants.test.ts b/packages/state-transition/test/unit-mainnet/constants.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/constants.test.ts
rename to packages/state-transition/test/unit-mainnet/constants.test.ts
diff --git a/packages/state-transition/test/unit/sanityCheck.test.ts b/packages/state-transition/test/unit-mainnet/sanityCheck.test.ts
similarity index 97%
rename from packages/state-transition/test/unit/sanityCheck.test.ts
rename to packages/state-transition/test/unit-mainnet/sanityCheck.test.ts
index 19367255fd..0f57d49b97 100644
--- a/packages/state-transition/test/unit/sanityCheck.test.ts
+++ b/packages/state-transition/test/unit-mainnet/sanityCheck.test.ts
@@ -4,7 +4,7 @@ import {beforeProcessEpoch} from "../../src/index.js";
import {generatePerfTestCachedStateAltair, generatePerfTestCachedStatePhase0, perfStateId} from "../perf/util.js";
describe("Perf test sanity check", () => {
- vi.setConfig({testTimeout: 60 * 1000});
+ vi.setConfig({testTimeout: 90 * 1000});
if (ACTIVE_PRESET !== PresetName.mainnet) {
throw Error(`ACTIVE_PRESET '${ACTIVE_PRESET}' must be mainnet`);
diff --git a/packages/state-transition/test/unit/signatureSets/signatureSets.test.ts b/packages/state-transition/test/unit-mainnet/signatureSets/signatureSets.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/signatureSets/signatureSets.test.ts
rename to packages/state-transition/test/unit-mainnet/signatureSets/signatureSets.test.ts
diff --git a/packages/state-transition/test/unit/upgradeState.test.ts b/packages/state-transition/test/unit-mainnet/upgradeState.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/upgradeState.test.ts
rename to packages/state-transition/test/unit-mainnet/upgradeState.test.ts
diff --git a/packages/state-transition/test/unit/util/aggregator.test.ts b/packages/state-transition/test/unit-mainnet/util/aggregator.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/aggregator.test.ts
rename to packages/state-transition/test/unit-mainnet/util/aggregator.test.ts
diff --git a/packages/state-transition/test/unit/util/balance.test.ts b/packages/state-transition/test/unit-mainnet/util/balance.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/balance.test.ts
rename to packages/state-transition/test/unit-mainnet/util/balance.test.ts
diff --git a/packages/state-transition/test/unit/util/cachedBeaconState.test.ts b/packages/state-transition/test/unit-mainnet/util/cachedBeaconState.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/cachedBeaconState.test.ts
rename to packages/state-transition/test/unit-mainnet/util/cachedBeaconState.test.ts
diff --git a/packages/state-transition/test/unit/util/deposit.test.ts b/packages/state-transition/test/unit-mainnet/util/deposit.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/deposit.test.ts
rename to packages/state-transition/test/unit-mainnet/util/deposit.test.ts
diff --git a/packages/state-transition/test/unit/util/epoch.test.ts b/packages/state-transition/test/unit-mainnet/util/epoch.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/epoch.test.ts
rename to packages/state-transition/test/unit-mainnet/util/epoch.test.ts
diff --git a/packages/state-transition/test/unit/util/flags.test.ts b/packages/state-transition/test/unit-mainnet/util/flags.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/flags.test.ts
rename to packages/state-transition/test/unit-mainnet/util/flags.test.ts
diff --git a/packages/state-transition/test/unit/util/loadState.test.ts b/packages/state-transition/test/unit-mainnet/util/loadState.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/loadState.test.ts
rename to packages/state-transition/test/unit-mainnet/util/loadState.test.ts
diff --git a/packages/state-transition/test/unit/util/loadState/findModifiedInactivityScores.test.ts b/packages/state-transition/test/unit-mainnet/util/loadState/findModifiedInactivityScores.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/loadState/findModifiedInactivityScores.test.ts
rename to packages/state-transition/test/unit-mainnet/util/loadState/findModifiedInactivityScores.test.ts
diff --git a/packages/state-transition/test/unit/util/loadState/findModifiedValidators.test.ts b/packages/state-transition/test/unit-mainnet/util/loadState/findModifiedValidators.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/loadState/findModifiedValidators.test.ts
rename to packages/state-transition/test/unit-mainnet/util/loadState/findModifiedValidators.test.ts
diff --git a/packages/state-transition/test/unit/util/loadState/loadValidator.test.ts b/packages/state-transition/test/unit-mainnet/util/loadState/loadValidator.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/loadState/loadValidator.test.ts
rename to packages/state-transition/test/unit-mainnet/util/loadState/loadValidator.test.ts
diff --git a/packages/state-transition/test/unit/util/misc.test.ts b/packages/state-transition/test/unit-mainnet/util/misc.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/misc.test.ts
rename to packages/state-transition/test/unit-mainnet/util/misc.test.ts
diff --git a/packages/state-transition/test/unit/util/seed.test.ts b/packages/state-transition/test/unit-mainnet/util/seed.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/seed.test.ts
rename to packages/state-transition/test/unit-mainnet/util/seed.test.ts
diff --git a/packages/state-transition/test/unit/util/shuffling.test.ts b/packages/state-transition/test/unit-mainnet/util/shuffling.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/shuffling.test.ts
rename to packages/state-transition/test/unit-mainnet/util/shuffling.test.ts
diff --git a/packages/state-transition/test/unit/util/slashing.test.ts b/packages/state-transition/test/unit-mainnet/util/slashing.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/slashing.test.ts
rename to packages/state-transition/test/unit-mainnet/util/slashing.test.ts
diff --git a/packages/state-transition/test/unit/util/slot.test.ts b/packages/state-transition/test/unit-mainnet/util/slot.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/slot.test.ts
rename to packages/state-transition/test/unit-mainnet/util/slot.test.ts
diff --git a/packages/state-transition/test/unit/util/validator.test.ts b/packages/state-transition/test/unit-mainnet/util/validator.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/validator.test.ts
rename to packages/state-transition/test/unit-mainnet/util/validator.test.ts
diff --git a/packages/state-transition/test/unit/util/weakSubjectivity.test.ts b/packages/state-transition/test/unit-mainnet/util/weakSubjectivity.test.ts
similarity index 100%
rename from packages/state-transition/test/unit/util/weakSubjectivity.test.ts
rename to packages/state-transition/test/unit-mainnet/util/weakSubjectivity.test.ts
diff --git a/packages/state-transition/vitest.config.ts b/packages/state-transition/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/state-transition/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/types/package.json b/packages/types/package.json
index 47a77b30b9..afacb7fcb0 100644
--- a/packages/types/package.json
+++ b/packages/types/package.json
@@ -62,10 +62,10 @@
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
"test": "yarn test:unit",
- "test:constants:minimal": "LODESTAR_PRESET=minimal vitest run --dir test/constants/",
- "test:constants:mainnet": "LODESTAR_PRESET=mainnet vitest run --dir test/constants/",
- "test:unit": "wrapper() { yarn test:constants:minimal $@ && yarn test:constants:mainnet $@ && LODESTAR_PRESET=mainnet vitest run --dir test/unit/ $@; }; wrapper",
- "test:browsers": "vitest run --config ./vitest.browser.config.ts --dir test/unit",
+ "test:constants:minimal": "vitest run --project constants",
+ "test:constants:mainnet": "vitest run --project constants-mainnet",
+ "test:unit": "wrapper() { yarn test:constants:minimal $@ && yarn test:constants:mainnet $@ && LODESTAR_PRESET=mainnet vitest run --project unit $@; }; wrapper",
+ "test:browsers": "vitest run --project browser",
"check-readme": "typescript-docs-verifier"
},
"types": "lib/index.d.ts",
diff --git a/packages/types/test/browser b/packages/types/test/browser
new file mode 120000
index 0000000000..9719cc86da
--- /dev/null
+++ b/packages/types/test/browser
@@ -0,0 +1 @@
+./unit
\ No newline at end of file
diff --git a/packages/types/test/globalSetup.ts b/packages/types/test/globalSetup.ts
deleted file mode 100644
index 0ab57c0574..0000000000
--- a/packages/types/test/globalSetup.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export async function setup(): Promise {}
-export async function teardown(): Promise {}
diff --git a/packages/types/test/unit/ssz.test.ts b/packages/types/test/unit/ssz.test.ts
index 1cc249a17a..ecb51db607 100644
--- a/packages/types/test/unit/ssz.test.ts
+++ b/packages/types/test/unit/ssz.test.ts
@@ -6,8 +6,8 @@ describe("size", () => {
const minSize = ssz.phase0.BeaconState.minSize;
const maxSize = ssz.phase0.BeaconState.maxSize;
// https://gist.github.com/protolambda/db75c7faa1e94f2464787a480e5d613e
- expect(minSize).toBe(2687377);
- expect(maxSize).toBe(141837543039377);
+ expect(minSize).toBe(7057);
+ expect(maxSize).toBe(141837537701009);
});
});
diff --git a/packages/types/vitest.browser.config.ts b/packages/types/vitest.browser.config.ts
deleted file mode 100644
index 182ac2a543..0000000000
--- a/packages/types/vitest.browser.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.browser";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- }
- })
-);
diff --git a/packages/types/vitest.config.ts b/packages/types/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/types/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/utils/package.json b/packages/utils/package.json
index d11241405e..f58fa157db 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -27,11 +27,11 @@
"build:watch": "yarn run build --watch",
"build:release": "yarn clean && yarn build",
"check-build": "node -e \"(async function() { await import('./lib/index.js') })()\"",
- "check-types": "tsc && vitest run --typecheck --dir test/types/",
+ "check-types": "tsc && vitest run --project types",
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
- "test:unit": "vitest run --dir test/unit",
- "test:browsers": "vitest run --config ./vitest.browser.config.ts --dir test/unit",
+ "test:unit": "vitest run --project unit",
+ "test:browsers": "vitest run --project browser",
"check-readme": "typescript-docs-verifier"
},
"types": "lib/index.d.ts",
diff --git a/packages/utils/test/browser b/packages/utils/test/browser
new file mode 120000
index 0000000000..9719cc86da
--- /dev/null
+++ b/packages/utils/test/browser
@@ -0,0 +1 @@
+./unit
\ No newline at end of file
diff --git a/packages/utils/test/globalSetup.ts b/packages/utils/test/globalSetup.ts
deleted file mode 100644
index 0ab57c0574..0000000000
--- a/packages/utils/test/globalSetup.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export async function setup(): Promise {}
-export async function teardown(): Promise {}
diff --git a/packages/utils/vitest.browser.config.ts b/packages/utils/vitest.browser.config.ts
deleted file mode 100644
index bb51b082d2..0000000000
--- a/packages/utils/vitest.browser.config.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.browser";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- optimizeDeps: {
- exclude: ["@chainsafe/blst"],
- },
- })
-);
diff --git a/packages/utils/vitest.config.ts b/packages/utils/vitest.config.ts
deleted file mode 100644
index 6a930aeae2..0000000000
--- a/packages/utils/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"]
- },
- })
-);
diff --git a/packages/validator/package.json b/packages/validator/package.json
index 7ae467aa87..0b5dd41f8a 100644
--- a/packages/validator/package.json
+++ b/packages/validator/package.json
@@ -27,10 +27,10 @@
"check-types": "tsc",
"lint": "biome check src/ test/",
"lint:fix": "yarn run lint --write",
- "test:unit": "vitest run --min-workers=1 --max-workers=1 --dir test/unit/",
+ "test:unit": "vitest run --project unit --project unit-mainnet",
"test": "yarn test:unit && yarn test:e2e",
- "test:spec": "vitest run --config vitest.spec.config.ts --dir test/spec/",
- "test:e2e": "vitest run --config vitest.e2e.config.ts --dir test/e2e",
+ "test:spec": "vitest run --project spec",
+ "test:e2e": "vitest run --project e2e --project e2e-mainnet",
"download-spec-tests": "node --loader=ts-node/esm test/spec/downloadTests.ts",
"check-readme": "typescript-docs-verifier"
},
diff --git a/packages/validator/test/e2e/web3signer.test.ts b/packages/validator/test/e2e-mainnet/web3signer.test.ts
similarity index 100%
rename from packages/validator/test/e2e/web3signer.test.ts
rename to packages/validator/test/e2e-mainnet/web3signer.test.ts
diff --git a/packages/validator/test/globalSetup.ts b/packages/validator/test/globalSetup.ts
deleted file mode 100644
index 0ab57c0574..0000000000
--- a/packages/validator/test/globalSetup.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export async function setup(): Promise {}
-export async function teardown(): Promise {}
diff --git a/packages/validator/test/unit/services/attestationDuties.test.ts b/packages/validator/test/unit-mainnet/services/attestationDuties.test.ts
similarity index 100%
rename from packages/validator/test/unit/services/attestationDuties.test.ts
rename to packages/validator/test/unit-mainnet/services/attestationDuties.test.ts
diff --git a/packages/validator/test/unit/services/blockDuties.test.ts b/packages/validator/test/unit-mainnet/services/blockDuties.test.ts
similarity index 100%
rename from packages/validator/test/unit/services/blockDuties.test.ts
rename to packages/validator/test/unit-mainnet/services/blockDuties.test.ts
diff --git a/packages/validator/test/unit/services/syncCommitteDuties.test.ts b/packages/validator/test/unit-mainnet/services/syncCommitteDuties.test.ts
similarity index 100%
rename from packages/validator/test/unit/services/syncCommitteDuties.test.ts
rename to packages/validator/test/unit-mainnet/services/syncCommitteDuties.test.ts
diff --git a/packages/validator/test/unit/services/utils.test.ts b/packages/validator/test/unit-mainnet/services/utils.test.ts
similarity index 100%
rename from packages/validator/test/unit/services/utils.test.ts
rename to packages/validator/test/unit-mainnet/services/utils.test.ts
diff --git a/packages/validator/test/unit/utils/params.test.ts b/packages/validator/test/unit-mainnet/utils/params.test.ts
similarity index 92%
rename from packages/validator/test/unit/utils/params.test.ts
rename to packages/validator/test/unit-mainnet/utils/params.test.ts
index b483c9a067..900a5e5446 100644
--- a/packages/validator/test/unit/utils/params.test.ts
+++ b/packages/validator/test/unit-mainnet/utils/params.test.ts
@@ -3,7 +3,12 @@ import {chainConfig} from "@lodestar/config/default";
import {networksChainConfig} from "@lodestar/config/networks";
import {describe, expect, it} from "vitest";
import {NotEqualParamsError, assertEqualParams} from "../../../src/util/params.js";
-import {lighthouseHoleskyConfig, nimbusHoleskyConfig, prysmHoleskyConfig, tekuHoleskyConfig} from "./interopConfigs.js";
+import {
+ lighthouseHoleskyConfig,
+ nimbusHoleskyConfig,
+ prysmHoleskyConfig,
+ tekuHoleskyConfig,
+} from "../../unit/utils/interopConfigs.js";
const testCases: {name: string; items: [ChainConfig, Record]}[] = [
{name: "lighthouse", items: [networksChainConfig.holesky, lighthouseHoleskyConfig]},
diff --git a/packages/validator/vitest.config.ts b/packages/validator/vitest.config.ts
deleted file mode 100644
index e76bb620e9..0000000000
--- a/packages/validator/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/validator/vitest.e2e.config.ts b/packages/validator/vitest.e2e.config.ts
deleted file mode 100644
index cdce1a72ef..0000000000
--- a/packages/validator/vitest.e2e.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.e2e";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- },
- })
-);
diff --git a/packages/validator/vitest.spec.config.ts b/packages/validator/vitest.spec.config.ts
deleted file mode 100644
index a9b0cf0be5..0000000000
--- a/packages/validator/vitest.spec.config.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import {defineConfig, mergeConfig} from "vitest/config";
-import vitestConfig from "../../configs/vitest.config.base.unit";
-
-export default mergeConfig(
- vitestConfig,
- defineConfig({
- test: {
- globalSetup: ["./test/globalSetup.ts"],
- passWithNoTests: true,
- pool: "threads",
- poolOptions: {
- threads: {
- isolate: false,
- },
- },
- },
- })
-);
diff --git a/packages/beacon-node/test/setupPreset.ts b/scripts/vitest/setupFiles/lodestarPreset.ts
similarity index 82%
rename from packages/beacon-node/test/setupPreset.ts
rename to scripts/vitest/setupFiles/lodestarPreset.ts
index 7d64d1336e..6337bbc138 100644
--- a/packages/beacon-node/test/setupPreset.ts
+++ b/scripts/vitest/setupFiles/lodestarPreset.ts
@@ -1,4 +1,5 @@
import {PresetName, setActivePreset} from "@lodestar/params/setPreset";
+
// Set minimal
if (process.env.LODESTAR_PRESET === undefined) {
process.env.LODESTAR_PRESET = "minimal";
@@ -6,6 +7,6 @@ if (process.env.LODESTAR_PRESET === undefined) {
// Override FIELD_ELEMENTS_PER_BLOB if its a dev run, mostly to distinguish from
// spec runs
-if (process.env.LODESTAR_PRESET === "minimal" && process.env.DEV_RUN) {
+if (process.env.LODESTAR_PRESET === "minimal") {
setActivePreset(PresetName.minimal, {FIELD_ELEMENTS_PER_BLOB: 4096});
}
diff --git a/vitest.config.ts b/vitest.config.ts
new file mode 100644
index 0000000000..0d78256b43
--- /dev/null
+++ b/vitest.config.ts
@@ -0,0 +1,93 @@
+import path from "node:path";
+import {defineConfig} from "vitest/config";
+import {browserTestProject} from "./configs/vitest.config.browser.js";
+import {e2eMainnetProject, e2eProject} from "./configs/vitest.config.e2e.js";
+import {specProjectMainnet, specProjectMinimal} from "./configs/vitest.config.spec.js";
+import {typesTestProject} from "./configs/vitest.config.types.js";
+import {unitTestMainnetProject, unitTestProject} from "./configs/vitest.config.unit.js";
+
+export default defineConfig({
+ test: {
+ workspace: [
+ {
+ extends: true,
+ ...unitTestProject,
+ },
+ {
+ extends: true,
+ ...unitTestMainnetProject,
+ },
+ {
+ extends: true,
+ ...browserTestProject,
+ },
+ {
+ extends: true,
+ ...e2eProject,
+ },
+ {
+ extends: true,
+ ...e2eMainnetProject,
+ },
+ {
+ extends: true,
+ ...specProjectMinimal,
+ },
+ {
+ extends: true,
+ ...specProjectMainnet,
+ },
+ {
+ extends: true,
+ ...typesTestProject,
+ },
+ ],
+ exclude: [
+ "**/spec-tests/**",
+ "**/spec-tests-bls/**",
+ "**/*.browser.test.ts",
+ "**/node_modules/**",
+ "**/dist/**",
+ "**/cypress/**",
+ "**/.{idea,git,cache,output,temp}/**",
+ "**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*",
+ ],
+ env: {
+ NODE_ENV: "test",
+ },
+ clearMocks: true,
+ // Some test files allocate a lot of data, which could cause more time for teardown
+ teardownTimeout: 5_000,
+ // We have a few spec tests suits (specially spec tests) which don't have individual tests
+ passWithNoTests: true,
+ reporters: process.env.GITHUB_ACTIONS
+ ? ["verbose", "hanging-process", "github-actions"]
+ : [process.env.TEST_COMPACT_OUTPUT ? "basic" : "verbose", "hanging-process"],
+ diff: process.env.TEST_COMPACT_DIFF
+ ? path.join(import.meta.dirname, "../scripts/vitest/vitest.diff.ts")
+ : undefined,
+ onConsoleLog: () => !process.env.TEST_QUIET_CONSOLE,
+ coverage: {
+ enabled: false,
+ clean: true,
+ all: false,
+ extension: [".ts"],
+ provider: "v8",
+ reporter: [["lcovonly", {file: "lcov.info"}], ["text"]],
+ reportsDirectory: "./coverage",
+ exclude: [
+ "**/*.d.ts",
+ "**/*.js",
+ "**/lib/**",
+ "**/coverage/**",
+ "**/scripts/**",
+ "**/test/**",
+ "**/types/**",
+ "**/bin/**",
+ "**/node_modules/**",
+ "**/spec-tests/**",
+ "**/spec-tests-bls/**",
+ ],
+ },
+ },
+});
diff --git a/yarn.lock b/yarn.lock
index 604c37f9fc..c0eaa4020a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -13664,3 +13664,4 @@ zod@^3.21.4:
version "3.23.0"
resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.0.tgz#a25dab5052702834233e0041e9dd8b6a8480e744"
integrity sha512-OFLT+LTocvabn6q76BTwVB0hExEBS0IduTr3cqZyMqEDbOnYmcU+y0tUAYbND4uwclpBGi4I4UUBGzylWpjLGA==
+
\ No newline at end of file