diff --git a/.gitlab/ci/doc.yml b/.gitlab/ci/doc.yml index 64a91b98041982546434a9e943d82c068415931c..2f879b55fbe21e6ca5b4cbe6282e19d2aacd8aa5 100644 --- a/.gitlab/ci/doc.yml +++ b/.gitlab/ci/doc.yml @@ -1,5 +1,6 @@ doc/build-image: - stage: build + # On le met au début car c'est utilisé dans les tests de storybook + stage: prepare needs: [] extends: - .rule-build-and-push @@ -7,4 +8,4 @@ doc/build-image: image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] - script: /kaniko/executor --context "$CI_PROJECT_DIR" --build-arg GIT_SHA=${CI_COMMIT_SHA} --dockerfile "$CI_PROJECT_DIR/Dockerfile.docs" --destination "caminofr/camino-docs:${CI_COMMIT_SHA}" ${KANIKO_POST_PARAM} + script: /kaniko/executor --context "$CI_PROJECT_DIR" --build-arg GIT_SHA=${CI_COMMIT_SHA} --dockerfile "$CI_PROJECT_DIR/Dockerfile.docs" --destination "caminofr/camino-docs:${CI_COMMIT_SHA}" diff --git a/.gitlab/ci/ui.yml b/.gitlab/ci/ui.yml index b5d0314f6a2ed13291e53f91e62b16d169e51eaf..08e9d84e10b68a247bf3765cbbfec26cb049d9cc 100644 --- a/.gitlab/ci/ui.yml +++ b/.gitlab/ci/ui.yml @@ -10,8 +10,11 @@ ui/test-storybook: extends: .prepare-node-run stage: test retry: 2 + services: + - name: caminofr/camino-docs:${CI_COMMIT_SHA} + alias: storybook script: - - make storybook/build + - ./.gitlab/wait-for-it.sh -h localhost -p 80 -t 60 -- echo 'done' - make storybook/test ui/build-and-push-image: stage: build diff --git a/Makefile b/Makefile index 367486864b034ce138d0a67abff464583469319c..0a679a87ed133a01f03449b04955164f2cdb1cb2 100644 --- a/Makefile +++ b/Makefile @@ -57,8 +57,7 @@ storybook/test: ifndef CI npm run storybook:test -w packages/ui else -# TODO 2024-07-04 on peut surement mieux faire, avec un sidecar - npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" "npx http-server packages/ui/storybook-static --port 6006 --silent" "npx wait-on tcp:6006 && npm run storybook:test -w packages/ui" + npm run storybook:test -w packages/ui -- --url http://localhost/storybook/ endif test/common: diff --git a/knip.ts b/knip.ts index c6cba42ae492ed30eb331d9e0cd2767111fc586f..08fd43dd21520cd74d67a534ab9dfc36f5bcef97 100644 --- a/knip.ts +++ b/knip.ts @@ -42,6 +42,7 @@ const config = { "@vitest/coverage-v8", "eslint-config-prettier", "eslint-plugin-promise", + "vite", ], }, "packages/common": { diff --git a/packages/api/package.json b/packages/api/package.json index 5ddae96cfecb30a44bc548c46a88f057fede40f2..380213a257a9083461900d1530f3b6c27a9f5a3f 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -29,8 +29,8 @@ "lint": "prettier --write . && eslint --fix .", "start": "node --enable-source-maps --loader ts-node/esm/transpile-only ./src/index.ts", "test": "vitest", - "test:unit": "vitest --project unit", - "test:integration": "vitest --project integration", + "test:unit": "vitest --config ./vitest.unit.config.ts", + "test:integration": "vitest --config ./vitest.integration.config.ts", "test:generate-data": "node --enable-source-maps --loader ts-node/esm/transpile-only src/tools/demarches/tests-creation.ts", "test:generate-phase-data": "node --enable-source-maps --loader ts-node/esm/transpile-only src/tools/phases/tests-creation.ts", "test:generate-matrices-data": "node --enable-source-maps --loader ts-node/esm/transpile-only src/tools/matrices/tests-creation.ts", diff --git a/packages/api/vitest.integration.config.ts b/packages/api/vitest.integration.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..8ddfe9ba1f14e4658d4d325ce7d948e323881d65 --- /dev/null +++ b/packages/api/vitest.integration.config.ts @@ -0,0 +1,29 @@ +/// <reference types="vitest" /> +import { defineConfig } from 'vite' +import { testEnv } from './test-env' +import path from 'path' +const poolOptions = + process.env.CI === 'true' + ? { + poolOptions: { + threads: { + minThreads: 1, + maxThreads: 5, + }, + }, + } + : {} +export default defineConfig({ + test: { + environment: 'node', + root: 'src/', + name: 'integration', + include: ['**/*.test.integration.ts'], + setupFiles: path.resolve(__dirname, './tests/vitestSetup.ts'), + testTimeout: 10000, + hookTimeout: 45000, + env: testEnv, + pool: 'threads', + ...poolOptions, + }, +}) diff --git a/packages/api/vitest.unit.config.ts b/packages/api/vitest.unit.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..705b5cee261c0a80f00effb1a0578f769db26d40 --- /dev/null +++ b/packages/api/vitest.unit.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from 'vitest/config' +import path from 'path' +import { testEnv } from './test-env' + +export default defineConfig({ + test: { + environment: 'node', + root: 'src/', + setupFiles: path.resolve(__dirname, './tests/vitestSetup.ts'), + env: testEnv, + }, +}) diff --git a/packages/api/vitest.workspace.ts b/packages/api/vitest.workspace.ts deleted file mode 100644 index 89d2e7d25eecf83f086a4f6ac17dc46745f8889f..0000000000000000000000000000000000000000 --- a/packages/api/vitest.workspace.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { defineWorkspace } from 'vitest/config' -import path from 'path' -import { testEnv } from './test-env' - -export default defineWorkspace([ - { - test: { - setupFiles: path.resolve(__dirname, './tests/vitestSetup.ts'), - env: testEnv, - environment: 'node', - pool: 'threads', - root: 'src', - name: 'unit', - }, - }, - { - test: { - name: 'integration', - include: ['**/*.test.integration.ts'], - setupFiles: path.resolve(__dirname, './tests/vitestSetup.ts'), - testTimeout: 10000, - hookTimeout: 45000, - env: testEnv, - }, - }, -])