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.
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.
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).
Starta applikationen i utvecklingsläge med "hot-code"-omladdning, felrapportering m.m. Se: Nextjs Development för mer information. Kör:
yarn
yarn devBesök http://localhost:3000 i din webbläsare.
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 startBesök http://localhost:3000 i din webbläsare.
#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-webGå till: sandbox.localhost för att testa och utforska sidan med data från EntryScape sandboxmiljö.
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"}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.
Visning av videofilmer görs via videospelaren screen9. För att kunna visa filmer krävs ett konto hos screen9 och en API-nyckel.
Kör alla tester
yarn cypress runKö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 openDetta kan användas för att felsöka och visa tester i en användargränssnitt.
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