Testrammeverk blir "nytt": – Bruker en ekte DOM

Vitest 2.0, Astro med Server Islands, blue screens, Superheaders() og kjekke Node.js-utils i ukens Forrige Uke!

Jon Johansen i Bekk. 📸: Vitest / Bekk
Jon Johansen i Bekk. 📸: Vitest / Bekk Vis mer

Dette var uken for styrtregn 🤸 og spise is 🍦 Og 9 016 ting skjedde i frontend-verdenen!

Astro med Server Islands 🪐

Astro bygger videre på øy-arkitekturen sin, og slapp forrige uke en eksperimentell versjon av det de kaller for Server islands 🏝.

Server islands skal være et svar på NextJs sin partial pre-rendering hvor man altså kan rendre deler av en side på serveren på request-tid, mens resten av innholdet kan være statisk, eller dynamisk innhentet. De viser til ganske imponerende resultater på forskjellige sidelastingsmetrikker sammenlignet med NextJs sin PPR.

Ikke bare det, men forrige uke ble det også annonsert at Netlify blir Astros offsielle hosting-partner 🫶. Dette kan tyde på førstehånds støtte for Server islands-arkiteturen antagelig blir tilgjengelig på Netlify.

En kobling mellom rammeverk og hosting er noe vi er kjente med fra før med blant annet med den tette sammenkoblingen mellom NextJs og Vercel.

Les mer om Server Islands her

Blå skjermer over hele verden! 🤕

Med mindre du har bestemt deg for å feriere utenfor teknologisk allfarvei i år, har du garantert fått med deg navnet CrowdStrike. Deres litt uheldige oppdatering gikk ut tilover 2 millioner Windows-maskiner rundt om verden p̶å̶ ̶e̶n̶ ̶f̶r̶e̶d̶a̶g̶ ̶e̶t̶t̶e̶r̶m̶i̶d̶d̶a̶g̶ ̶i̶ ̶f̶e̶r̶i̶e̶n̶. Selv skylder de på en bug i test-softwaren sin.

Her til lands er ikke CrowdStrike like stort, og det gikk stort sett greit, men over dammen rammet det en del bredere og tok blant annet ned banker, nødsentraler, helsesystemer. Her er en ganske stilig snutt av hvordan flytrafikken over USA ble rammet.

Så får vi krysse fingrene for at det ikke var en sommer-intern som dyttet koden ut i produksjon. 😸

Ny major for Vitest! 🆙

Testrammeverket Vitest som har hatt god medvind det siste året har kommet i ny versjon. Versjon 2 er ute nå, og det er pakket med feilrettinger, forbedringer men også breaking changes. 🤠

Den aller største nyheten for Vitest er deres nye (eksperimentelle) Browser-mode, som bruker en ekte DOM til testingen (gjennom Playwright eller webdriverio), som gjør test-miljøet mye likere det man kan forvente i en browser.

Man kan enkelt mocke og gjøre assertions på komponent-nivå, og det gir en slags hybrid mellom enhetstesting og ende-til-ende-testing. Du kan se eksempler for ditt favoritt-rammeverk 👉 her 👈.

new Superheaders() 🦸

Syns du også at strengene i Header-apiet er litt kronglete å jobbe med?Nå har Michael Jackson (han i Remix, ikke sangeren🕺) kommet med et lite bibliotek for å gjøre headere litt enklere å forholde seg til, med sterke typer og en del ekstra convenience-metoder ✨

let headers = new SuperHeaders();

// Content-Type
headers.contentType = 'application/json; charset=utf-8';

console.log(headers.contentType.mediaType); // 'application/json'
console.log(headers.contentType.charset); // 'utf-8'

headers.contentType.charset = 'iso-8859-1';

Du kan sjekke hele pakken 👉 her 👈

Innebygde utils i node 🛠

Nå som flere av oss jobber på serveren også, er det også flere triks man kan dra ut av boka. I Node finner man for eksempel som vist i snutten under her en versjon av setTimeout som man kan bruke await på!

Det finnes også en hel del andre moro API-er, selv om kanskje ikke bruksområdene er så veldig brede! 🤓

Aaand that’s that! 👋 Vi sees neste uke!