đ§Ș 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.*)
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,
},
},
// ...
}