Hoppa till huvudinnehÄll

đŸ§Ș Tester

Översikt​

Tester i Midas utgörs frÀmst av komponenttester med hjÀlp av Vitest Component Testing. Vi gör ocksÄ automatiska tillgÀnglighetstester i Storybook. VÄra snapshottester körs i Chromatic.

Skriva tester​

Vi strÀvar efter en hög testtÀckning, vi tror att en vÀltestad kodbas ökar förvaltningsbarheten och ger utvecklaren trygghet att förbÀttra befintlig kod.

Bidrag till kodbasen ska kompletteras med Ätminstone ett test.

đŸ§© Komponenttester​

Midas anvÀnder Storybook för att presentera komponenter, med hjÀlp av portable stories kan vi anvÀnda en renderad story som utgÄngspunkt för vÄra tester. Testerna körs sedan via en riktig browser. LÀs gÀrna mer om komponenttestning hos Vitest

Kör komponenttester​

Lokal installation:

nx test components

Docker:

docker compose exec cli npx nx test components

Kör tester för en specifik komponent​

nx test components -- toast/Toast.spec

Docker:

docker compose exec cli npx nx test components -- toast/Toast.spec

Kör tester med synlig webblĂ€sare (headed)​

AnvÀndbart vid felsökning. KrÀver WSLg eller en X-server om du kör WSL2.

nx test components --browser.headless=false

Headed mode kan kombineras med ett specifikt test:

nx test components -- toast/Toast.spec --browser.headless=false

đŸ§Ș Enhetstester​

För att testa JavaScriptmoduler i nodemiljö anvÀnds vitest.

LĂ€gg till konfiguration för enhetstester​

Alla paket och appar i Midas har inte enhetstester konfigurerade. @nx/vitest kommer automatiskt att skapa kommandot nx test <package> om paketet har en konfigurationsfil för vitest (vitest.config.*)

vitest.config.ts
import { defineProject } from 'vitest/config'

export default defineProject({
test: {
name: 'unit',
},
})

♿ TillgĂ€nglighetstester​

Med @storybook/addon-a11y utförs tillgÀnglighetstester med axe pÄ varje komponent, dessa testas i vÄra workflows med kommandot:

Lokal installation:

nx a11y storybook

Docker:

docker compose exec cli npx nx a11y storybook

Automatiserade tillgÀnglighetstester fÄngar upp en stor del av brister gentemot WCAG-standarden men kan sjÀlvklart kompletteras.

För att kontrollera tillgÀngligheten i dark-mode eller forced-colors:

Lokal installation:

nx run storybook:a11y-dark-mode      # Dark mode
nx run storybook:a11y-forced-colors # Forced colors

Docker:

docker compose exec cli npx nx run storybook:a11y-dark-mode      # Dark mode
docker compose exec cli npx nx run storybook:a11y-forced-colors # Forced colors

👀 Snapshottester​

Vi anvÀnder Chromatic för att köra snapshottester som jÀmför visuella Àndringar i komponenter. Chromatic utgÄr frÄn vÄr Storybook och tar snapshots pÄ samtliga stories.

Trigga snapshottester​

Snapshottester körs automatiskt vid push till följande brancher:

  • main
  • brancher som startar med feature
  • brancher som startar med feat
  • brancher som startar med fix
  • brancher som startar med bugfix

Hoppa över stories​

För att reducera antalet snapshots bör vi bara ta en snap per tillstÄnd i en komponent, vÀnligen anvÀnd följande kod om du vill att chromatic ska hoppa över din story:

export const PrimaryWithAnotherLabel: Story = {
args: {
label: 'Just another label',
},
parameters: {
chromatic: {
disableSnapshot: true,
},
},
// ...
}