diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e25dfb92..75753144 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,7 +37,7 @@ jobs: npm run lint CI=false npm run build env: - API_URL: "http://localhost:8000" + MYKN_API_URL: "http://localhost:8000" - uses: actions/upload-artifact@v4 with: @@ -104,7 +104,7 @@ jobs: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} frontend-tests: - name: Run storybook tests + name: Run the Vitest test suite needs: frontend-build runs-on: ubuntu-latest @@ -124,28 +124,10 @@ jobs: - name: Install Playwright run: npx playwright install --with-deps - - name: Build Storybook - run: npm run build-storybook - - - name: Run vitest tests + - name: Run tests run: npm run test:coverage - - name: Serve Storybook and run tests - run: | - npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" \ - "npx http-server storybook-static --port 6006" \ - "npx wait-on tcp:127.0.0.1:6006 && npm run test-storybook" - - - name: Publish coverage report (storybook) - uses: codecov/codecov-action@v3.1.4 - with: - working-directory: frontend/coverage - files: ./storybook/coverage-storybook.json - flags: storybook - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - - - name: Publish coverage report (jest) + - name: Publish coverage report uses: codecov/codecov-action@v3.1.4 with: working-directory: frontend/coverage @@ -180,7 +162,7 @@ jobs: docker_build: name: Build docker image - uses: ./.github/workflows/build-image.yaml + uses: ./.github/workflows/build-image.yml with: image_name: maykinmedia/open-beheer image_tag_suffix: "" diff --git a/frontend/bin/create_page.sh b/frontend/bin/create_page.sh index dd15050c..bcc8f0c8 100755 --- a/frontend/bin/create_page.sh +++ b/frontend/bin/create_page.sh @@ -104,7 +104,7 @@ import { } from "storybook-addon-remix-react-router"; import { ${component_name} as ${component_name}Component } from "./$capitalized_page_name"; -import { ${capitalized_page_name}LoaderData } from "./${page_name}.loader.tsx"; +import { ${page_name}Loader } from "./${page_name}.loader"; const meta: Meta = { title: "Pages/${capitalized_page_name}", @@ -119,7 +119,7 @@ export const ${component_name}: Story = { parameters: { reactRouter: reactRouterParameters({ routing: { - loader: () => ({}) as ${capitalized_page_name}LoaderData, + loader: ${page_name}Loader, }, }), }, diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 218b46ec..4322e61b 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -9,6 +9,7 @@ "version": "0.0.0", "dependencies": { "@maykin-ui/admin-ui": "^0.0.53", + "@maykin-ui/client-common": "^0.0.1", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router": "^7.5.0" @@ -2767,6 +2768,12 @@ "react-dom": "^18.0.0 || ^19.0.0" } }, + "node_modules/@maykin-ui/client-common": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@maykin-ui/client-common/-/client-common-0.0.1.tgz", + "integrity": "sha512-aCQ1yNatDwV79uQK4DVArEJoVR+VVWG3LXm5FUJqSnxKFeAMTkT1O02Hzsv9dGpgBqIuUQTOLbLd2N61UdH67A==", + "license": "EUPL-1.2" + }, "node_modules/@maykinmedia/eslint-config": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@maykinmedia/eslint-config/-/eslint-config-1.0.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index f2b700c3..39a7ab2d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,16 +13,15 @@ "prepare": "cd .. && husky frontend/.husky", "test": "vitest", "test:coverage": "vitest --coverage --watch=false", - "test-storybook": "test-storybook", - "test-storybook:coverage": "test-storybook --coverage", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build" }, "dependencies": { + "@maykin-ui/admin-ui": "^0.0.53", + "@maykin-ui/client-common": "^0.0.1", "react": "^19.0.0", "react-dom": "^19.0.0", - "react-router": "^7.5.0", - "@maykin-ui/admin-ui": "^0.0.53" + "react-router": "^7.5.0" }, "devDependencies": { "@chromatic-com/storybook": "^3.2.6", diff --git a/frontend/src/pages/home/Home.stories.tsx b/frontend/src/pages/home/Home.stories.tsx index 0c2f5c67..360d3849 100644 --- a/frontend/src/pages/home/Home.stories.tsx +++ b/frontend/src/pages/home/Home.stories.tsx @@ -5,7 +5,7 @@ import { } from "storybook-addon-remix-react-router"; import { HomePage as HomePageComponent } from "./Home"; -import { HomeLoaderData } from "./home.loader.tsx"; +import { homeLoader } from "./home.loader.tsx"; const meta: Meta = { title: "Pages/Home", @@ -20,7 +20,7 @@ export const HomePage: Story = { parameters: { reactRouter: reactRouterParameters({ routing: { - loader: () => ({}) as HomeLoaderData, + loader: homeLoader, }, }), }, diff --git a/frontend/src/pages/login/Login.stories.tsx b/frontend/src/pages/login/Login.stories.tsx index 1877f467..20dab626 100644 --- a/frontend/src/pages/login/Login.stories.tsx +++ b/frontend/src/pages/login/Login.stories.tsx @@ -5,7 +5,7 @@ import { } from "storybook-addon-remix-react-router"; import { LoginPage as LoginPageComponent } from "./Login"; -import { LoginLoaderData } from "./login.loader.tsx"; +import { loginLoader } from "./login.loader.tsx"; const meta: Meta = { title: "Pages/Login", @@ -20,7 +20,7 @@ export const LoginPage: Story = { parameters: { reactRouter: reactRouterParameters({ routing: { - loader: () => ({}) as LoginLoaderData, + loader: loginLoader, }, }), }, diff --git a/frontend/vitest.config.ts b/frontend/vitest.config.ts index b62b37f0..fe165dc7 100644 --- a/frontend/vitest.config.ts +++ b/frontend/vitest.config.ts @@ -1,6 +1,9 @@ import { defineConfig } from "vitest/config"; +import config from "./vite.config"; + export default defineConfig({ + ...config, test: { globals: true, environment: "jsdom", diff --git a/frontend/vitest.workspace.ts b/frontend/vitest.workspace.ts index ce53cc5e..2a54f57f 100644 --- a/frontend/vitest.workspace.ts +++ b/frontend/vitest.workspace.ts @@ -10,7 +10,7 @@ const dirname = // More info at: https://storybook.js.org/docs/writing-tests/test-addon export default defineWorkspace([ - "*.stories.tsx", + "vitest.config.ts", { extends: "vite.config.ts", plugins: [