Skrevet i samarbeid med KI - Gemini 3.7 Flash
Verktøy - Vitest, Vue Test Utils, Nuxt Test Utils, TypeScript
- Opprettet isolerte enhetstester for
<Footer /> og <Header /> i layout-testsettet. - Opprettet type-trygge testdata og varianter for
<Head />, <Body /> og <Page /> i artikkelkomponentene. - Implementering av 11 enhetstester som verifiserer alle betingede forgreininger (CTA, Media, Minimal, Innleggsside, Emneside og Fallback-stater).
- Refaktorering av
<Page />-komponenten til ren semantisk HTML5 ved bruk av <article> som rot-element fremfor nøytrale <div>-elementer. - Stubbing av asynkrone underelementer som
<MDC /> og <ContentRenderer /> for å sikre at <Suspense> rendrer det forventede innholdet under testing.
Føler meg fantastisk over å ha vært så produktiv over de fire timene jeg arbeidet med prosjektet idag
Utfordring & Løsninger
For å forebygge feil i brukergrensesnittet for artikkelkomponentene, måtte frontend-applikasjonen ha isolerte tester for layout- og artikkelkomponenter, refaktorere uhensiktsmessig markup, samt håndtere asynkron lasting i komponenter som benytter Suspense.
Hensikten var å opprette pålitelig og fullstendig teststruktur for grensesnittkomponentene samt sikre at både statiske og dynamiske tilstander verifiseres automatisk ved testkjøring.
- Opprettet nye enhetstester for
<Footer /> og validerte skjemaer samt lenker i layout-komponenten. - La til isolert og type-trygg testdata med varianter i
articleData.ts for å dekke alle tilstandene i <Head />, <Body /> og <Page />. - Refaktorerte
<Page.vue> til en semantisk ren HTML5-struktur ved å fjerne ubenyttet ytre <div> og plassere klasser og navigasjon direkte i rot-elementet <article>. - Implementerte 11 enhetstester i
article.test.ts som dekker katalogvisning, enkeltinnlegg, medietyper, fallback-visninger og emnesider. - Verifiserte at rute-betinget visning (f.eks. at
<ArticleBody /> skjules på emnesider /logs/tags/) fungerer nøyaktig som forventet.
Enhetstestene for artikkel- og layoutkomponentene kjører nå 100% grønt og stabilt i Vitest. Som en konsekvens av disse tiltakene har feilmarginen blitt redusert ved fremtidige komponent oppdateringer og sikrer at den universelle utformingen blir ivaretatt for å sikre at skjermlesere og søkemotorer tolker arktitekturen korrekt. Erfaringen viser at bevisst stubbing av asynkrone underelementer kombinert med presise testdata-varianter gir forutsigbarhet og integeritet for enhetstestene i et JSDOM-miljø.