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