Skip to content

Latest commit

 

History

History
130 lines (84 loc) · 4.85 KB

File metadata and controls

130 lines (84 loc) · 4.85 KB

Sveriges dataportal

Sveriges dataportal webbklient – dataportal.se

På Sveriges dataportal synliggörs data från en rad olika typer av organisationer och sektorer. Här finns enbart information om datamängder, dvs. metadata. Data hämtas i sin tur via länkar för nedladdning eller efterfrågas hos respektive organisation som ansvarar för sina egna datamängder.

EntryScape

Entryscape logotype

Den svenska dataportalen är starkt integrerad med produktsviten EntryScape från MetaSolutions AB, https://entryscape.com/sv/. EntryScape Registry är en lösning för att hantera ett register över datakataloger och relaterad information.

Versionskrav

node-current npm-current nextjs-current

Utveckling

Börja med att skapa en .env.local fil. Använd .env.local.example som mall. (Env-variabler och tokens i .env.local.example som har en värdet "secret" är inte tillgängliga här och behöver bytas ut mot ett giltigt värde).

Kör applikationen i utvecklingsläge

Starta applikationen i utvecklingsläge med "hot-code"-omladdning, felrapportering m.m. Se: Nextjs Development för mer information. Kör:

yarn
yarn dev

Besök http://localhost:3000 i din webbläsare.

Kör applikationen i productionsläge

Bygger applikationen i produktionsläge. Se Nextjs production build för mer info. Och startar Next.js produktionsservern. Se Nextjs start production för mer info. Kör:

yarn
yarn build
yarn start

Besök http://localhost:3000 i din webbläsare.

Starta applikationen med Docker

#build image
docker build . -t dataportal-web

# Create container
docker run -p 3000:3000 -e PORT=3000 -e HOST=http://localhost:3000 -e REACT_APP_APOLLO_URL=http://localhost:1400 -e REACT_APP_RUNTIME_ENV=prod -e IMAGE_DOMAIN=host.docker.internal -e REACT_APP_MEDIA_BASE_URL="http://host.docker.internal:1400/assets/dataportal" --add-host=host.docker.internal:host-gateway dataportal-web

Lokal testning med Sandbox data

Gå till: sandbox.localhost för att testa och utforska sidan med data från EntryScape sandboxmiljö.

Health check

NextJs svarar på http://localhost:1300/api/healthcheck?secret=[HEALTHCHECK_SECRET från env] Cacheas inte, gör en request till contentbackend med startsidans fråga.

{"status":"fail"}
{"status":"pass"}

Notes

Stack

  • Nextjs
  • TypeScript
  • React
  • Tailwind
  • Apollo Client

Innehålls-backend

Sveriges dataportal hämtar nyheter och innehåll via GraphQL proxy. Innehållet visas med Apollo GraphQL och React. Proxyt är inte publicerat på Github.

Videos

Screen9 logotype

Visning av videofilmer görs via videospelaren screen9. För att kunna visa filmer krävs ett konto hos screen9 och en API-nyckel.

E2E Test med Cypress

cypress.io

Kör alla tester

yarn cypress run

Kör en specifik test

yarn cypress run --spec "cypress/e2e/YOUR_TEST_FILE.cy.js"

För att använda Cypress GUI, kör följande kommando.

yarn cypress open

Detta kan användas för att felsöka och visa tester i en användargränssnitt.

Riktlinjer när man skriver tester

För att skriva tester som är lätt att underhålla, följ dessa riktlinjer:

  • Använd beskrivande namn för tester
  • Dela upp tester i mindre tester för att göra dem lättare att underhålla och felsöka
  • Använd/lägg till data-test-id för att välja element för att undvika att använda CSS-attributer
  • Lägg till kommentarer för att förklara varför en test är skriven på ett visst sätt
  • Håll tester rena och läsbara