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 vÄr CI.

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.mts
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 vÄr CI för att köra snapshottester som jÀmför visuella Àndringar i komponenter. Testerna utgÄr frÄn vÄr Storybook och tar snapshots pÄ samtliga stories som inte optar ut.

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 för att inte ta en snapshot.

export const PrimaryWithAnotherLabel: Story = {
args: {
label: 'Just another label',
},
tags: ['!snapshot'],
// ...
}