To forskellige former. Er det folk der skal bruge produktet eller integrere op mod en service

      1. SDK guide til de folk der skal anvende sdket
        1. fx hvordan finder man dokumentation
        2. Det kan være godt at skrive i kode nær dokumentation.
        3. evt. linke til arkitektur beskrivelse, så man kan forstå, hvordan tingene hænger sammen.
      2. End web projekter - de folk der skal bruge produktet. Altså bruge websitet

Introduktion

Formål

Formålet med dette dokument er at beskrive hvordan et udviklingsmiljø, til videreudvikling af NAP ref-implementation, skal sættes op, samt hvordan koden deployes og testes.

Forudsætninger

Det lokale udviklingsmiljø er opsat med docker-compose.

For at kunne køre de compose filer, der bliver beskrevet nedenfor kræves et docker netværk kaldet nap_net. Hvis dette ikke allerede er lavet kør `docker network create nap_net`.

Der udstilles ingen porte på docker-hosten, og alt trafik routes således igennem en lokal reverse proxy https://svn.nspop.dk/svn/components/nap/nap-compose/ som er på nap_net og eksponere en port 8080 på localhost. Således bliver nap-ref-web tilgængelig på http://localhost:8080/nap/reference/web/.

Funktionaliteten af Nap-ref-web illustreres bedst, når applikation er indlejret i et værst system så som, Nap-Java-host Platformsservices (NAP) - Leverancebeskrivelse

Nap-ref-web

Udviklingsmiljø

Installer dependencies med `npm install` i rodfolderen.

Under compose/-folderen findes forskellige compose-filer til udvikling, test og release.

Vær opmærksom på kun at køre en service ved navn naprefweb.  Stop derfor altid servicen og kør `docker-compose down`, når når der skal skiftes setup.


For at starte en webpack dev server i docker køres  `docker-compose build && docker-compose up` fra compose/develop.  

Hvis dependencies ændres skal containeren bygges igen, ellers er det fremover nok at køre `docker-compose up` når services skal startes.

Developper setuppet volume mapper ./src folderen, hvilket betyder ændringer i kildekoden bliver compilet og deployet med det samme.

Applikationen kan nu nåes internt i docker på netværket nap_net på http://naprefweb:8080 (såfremt yderlige porte ikke eksponeres) og på http://localhost:8080/nap/reference/web/, hvis nap-compose reverse proxy, står foran som nævnt ovenfor. 


Jenkins bygger compiler koden og deploye det i snapshot versioner af NSPs wildfly container. Dette byg kan testes ved at køre at `docker-compose up` i compose/test. 

Apllikationen kan nåes på samme url som ovenfor. 


compose/release konfigurationen bruges udelukkende i produktions øjemed.

Test og Coverage

For at køre unit-tests med Karma kør `npm run test`. Det kører alle unit tests i en headless chromium browser.

Istanbul generer en coverage rapport kommer i /coverage.

CI

Jenkinsfilen beskriver en jenkins pipeline med install, test og build, der køres i NSPs node-chrome image, for at kunne afvikle test i en headless chromium browser.

Nap-ref-facade

Udviklingsmiljø

Test og Coverage

JUnit anvendes til implementering af unit tests. Der er kontinuert gennemført unit tests på alle komponenter i projektet.
Unit tests kan afvikles ved at køre:
mvn test

Ci


og nap-ref-facade på http://localhost:8080/nap/reference/web/services/main.