From f79d99d2721be515eeb855714a51fe94befa65de Mon Sep 17 00:00:00 2001 From: Oliver Eyton-Williams Date: Tue, 13 Jan 2026 16:56:25 +0100 Subject: [PATCH] refactor(curriculum): use projects for curriculum tests (#64657) --- curriculum/package.json | 5 ++++- curriculum/src/test/vitest.config.mjs | 6 +++--- curriculum/vitest.config.mjs | 2 +- curriculum/vitest.tooling.config.mjs | 7 +++++++ package.json | 4 ++-- 5 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 curriculum/vitest.tooling.config.mjs diff --git a/curriculum/package.json b/curriculum/package.json index 5ecfc7695a4..31ad9fff23e 100644 --- a/curriculum/package.json +++ b/curriculum/package.json @@ -38,8 +38,11 @@ "reorder-tasks": "CALLING_DIR=$INIT_CWD tsx --tsconfig ../tsconfig.json ../tools/challenge-helper-scripts/reorder-tasks", "update-challenge-order": "CALLING_DIR=$INIT_CWD tsx --tsconfig ../tsconfig.json ../tools/challenge-helper-scripts/update-challenge-order", "update-step-titles": "CALLING_DIR=$INIT_CWD tsx --tsconfig ../tsconfig.json ../tools/challenge-helper-scripts/update-step-titles", + "test": "NODE_OPTIONS='--max-old-space-size=7168' pnpm test-gen && vitest run", + "test:watch": "pnpm test-gen && vitest", "test-gen": "tsx ./src/test/utils/generate-block-tests.ts", - "test": "NODE_OPTIONS='--max-old-space-size=7168' pnpm -s test-gen && vitest -c src/test/vitest.config.mjs" + "test-tooling": "pnpm test --project @freecodecamp/curriculum", + "test-content": "pnpm test --project test" }, "devDependencies": { "@babel/core": "7.23.7", diff --git a/curriculum/src/test/vitest.config.mjs b/curriculum/src/test/vitest.config.mjs index 97988cea0d5..62b7695c295 100644 --- a/curriculum/src/test/vitest.config.mjs +++ b/curriculum/src/test/vitest.config.mjs @@ -2,12 +2,12 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { - include: ['src/test/blocks-generated/**/*.test.js'], + include: ['blocks-generated/**/*.test.js'], environment: 'node', hookTimeout: 60000, testTimeout: 30000, isolate: false, - globalSetup: 'src/test/vitest-global-setup.mjs', - setupFiles: 'src/test/vitest-setup.mjs' + globalSetup: 'vitest-global-setup.mjs', + setupFiles: 'vitest-setup.mjs' } }); diff --git a/curriculum/vitest.config.mjs b/curriculum/vitest.config.mjs index 9439a0f82b9..6fd4d371113 100644 --- a/curriculum/vitest.config.mjs +++ b/curriculum/vitest.config.mjs @@ -2,6 +2,6 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { - exclude: ['src/test/blocks-generated/**/*.test.js', 'dist'] + projects: ['vitest.tooling.config.mjs', 'src/test/vitest.config.mjs'] } }); diff --git a/curriculum/vitest.tooling.config.mjs b/curriculum/vitest.tooling.config.mjs new file mode 100644 index 00000000000..253bde474c7 --- /dev/null +++ b/curriculum/vitest.tooling.config.mjs @@ -0,0 +1,7 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + exclude: ['src/test/blocks-generated/**/*.test.js', 'dist', 'node_modules'] + } +}); diff --git a/package.json b/package.json index d4867932b4c..b6e86de24e2 100644 --- a/package.json +++ b/package.json @@ -74,8 +74,8 @@ "test:tools:challenge-helper-scripts": "cd ./tools/challenge-helper-scripts && pnpm test run", "test:tools:scripts-lint": "cd ./tools/scripts/lint && pnpm test run", "test:tools:challenge-parser": "cd ./tools/challenge-parser && pnpm test run", - "test:curriculum:content": "cd ./curriculum && pnpm test run", - "test:curriculum:tooling": "cd ./curriculum && pnpm vitest run", + "test:curriculum:content": "cd ./curriculum && pnpm test-content", + "test:curriculum:tooling": "cd ./curriculum && pnpm test-tooling", "test:shared": "cd ./shared && pnpm vitest run", "test:client": "cd ./client && pnpm test run", "prepare": "husky",