Skip to content

Commit

Permalink
Bankid frontend tester og fjerning/refaktor av org-tilgang service-de…
Browse files Browse the repository at this point in the history
…v og tilgang-frontend (#3615)

* Lagt til mer logging for bankid innlogging dersom prosessen feiler
* Skrevet Playwright test for innlogging av bankid bruker
* Oppdatert dependencies og fjernet ubrukt testcafe config
* Mulighet til å hente maskinporten client gjennom swagger
* Støtter azure på person-org-tilgang-service
* Lagt til oversikt-frontend i inbound rules
* Slettet overflødig organisasjon-tilgang-frontend
* Fjernet dev versjon av person-organisasjon-tilgang-service
  • Loading branch information
stigus authored Sep 24, 2024
1 parent 3f8e34e commit 237ef46
Show file tree
Hide file tree
Showing 65 changed files with 131 additions and 6,059 deletions.
23 changes: 0 additions & 23 deletions .github/workflows/app.organisasjon-tilgang-frontend.yml

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ jobs:
with:
working-directory: "apps/person-organisasjon-tilgang-service"
deploy-tag: "#deploy-person-organisasjon-tilgang-service"
deploy-tag-test: "#deploy-test-person-organisasjon-tilgang-service"
permissions:
contents: read
id-token: write
Expand Down
13 changes: 0 additions & 13 deletions apps/dolly-frontend/src/main/js/.testcaferc.json

This file was deleted.

4 changes: 2 additions & 2 deletions apps/dolly-frontend/src/main/js/playwright/globalSetup.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
brukerMalerMock,
brukerOrganisasjonMalerMock,
eksisterendeGruppeMock,
gjeldendeBrukerMock,
gjeldendeAzureBrukerMock,
gjeldendeProfilMock,
histarkMock,
instMock,
Expand Down Expand Up @@ -109,7 +109,7 @@ const organisasjonerForBruker = new RegExp(/dolly-backend\/api\/v1\/organisasjon
const mockRoutes: RouteInfo[] = [
{ url: api, response: [] },
{ url: weatherApi, status: 404, response: {} },
{ url: current, response: gjeldendeBrukerMock },
{ url: current, response: gjeldendeAzureBrukerMock },
{ url: profil, response: gjeldendeProfilMock },
{ url: miljoer, response: miljoeMock },
{ url: pensjonMiljoer, response: miljoeMock },
Expand Down
39 changes: 27 additions & 12 deletions apps/dolly-frontend/src/main/js/playwright/mocks/BasicMocks.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,28 @@ export const gjeldendeProfilMock = {
type: 'Testbruker',
}

export const gjeldendeBrukerMock = {
export const gjeldendeAzureBrukerMock = {
brukerId: '1234-5678-12',
brukernavn: 'BeASt, BugTerminator',
brukertype: 'BASIC',
brukertype: 'AZURE',
epost: '[email protected]',
}

export const gjeldendeBankidBrukerMock = {
brukerId: '12345678912',
brukernavn: 'BeASt, BugTerminator',
brukertype: 'BANKID',
}

export const personOrgTilgangMock = [
{
navn: 'testytest',
organisasjonsnummer: '12345678',
organisasjonsfrom: 'BEDR',
gyldigTil: '2100-10-10T10:10:10.100Z',
},
]

export const personFragmentSearchMock = [
{
ident: '12345678912',
Expand Down Expand Up @@ -54,7 +69,7 @@ export const brukerMalerMock = {
id: 1,
malNavn: 'Teste Playwright',
bestilling: malBestilling,
bruker: gjeldendeBrukerMock,
bruker: gjeldendeAzureBrukerMock,
},
],
},
Expand All @@ -65,7 +80,7 @@ export const brukerMalerEndretMock = [
id: 1,
malNavn: 'Nytt navn på mal',
bestilling: malBestilling,
bruker: gjeldendeBrukerMock,
bruker: gjeldendeAzureBrukerMock,
},
]

Expand All @@ -75,7 +90,7 @@ export const uferdigBestillingMock = {
antallLevert: 0,
ferdig: false,
sistOppdatert: '2023-04-21T10:38:10.11282',
bruker: gjeldendeBrukerMock,
bruker: gjeldendeAzureBrukerMock,
gruppeId: 2,
stoppet: false,
bestilling: {
Expand Down Expand Up @@ -1317,7 +1332,7 @@ export const backendBestillingerMock = [
antallLevert: 1,
ferdig: true,
sistOppdatert: '2022-01-01T11:59:25.998969',
bruker: gjeldendeBrukerMock,
bruker: gjeldendeAzureBrukerMock,
gruppeId: 1,
stoppet: false,
environments: ['q1'],
Expand Down Expand Up @@ -2008,7 +2023,7 @@ export const backendBestillingerMock = [
antallLevert: 1,
ferdig: true,
sistOppdatert: '2022-01-01T15:45:39.696068',
bruker: gjeldendeBrukerMock,
bruker: gjeldendeAzureBrukerMock,
gruppeId: 1,
stoppet: false,
environments: [''],
Expand Down Expand Up @@ -2057,7 +2072,7 @@ export const backendBestillingerMock = [
antallLevert: 1,
ferdig: true,
sistOppdatert: '2022-01-01T15:45:39.696068',
bruker: gjeldendeBrukerMock,
bruker: gjeldendeAzureBrukerMock,
gruppeId: 1,
stoppet: false,
environments: [''],
Expand Down Expand Up @@ -2086,8 +2101,8 @@ export const nyGruppeMock = {
id: 2,
navn: 'Playwright testing',
hensikt: 'Saftig testing med Playwright..',
opprettetAv: gjeldendeBrukerMock,
sistEndretAv: gjeldendeBrukerMock,
opprettetAv: gjeldendeAzureBrukerMock,
sistEndretAv: gjeldendeAzureBrukerMock,
datoEndret: '1990-01-12',
antallIdenter: 0,
antallIBruk: 0,
Expand All @@ -2102,8 +2117,8 @@ export const eksisterendeGruppeMock = {
id: 1,
navn: 'Testytest',
hensikt: 'Testing av testytest',
opprettetAv: gjeldendeBrukerMock,
sistEndretAv: gjeldendeBrukerMock,
opprettetAv: gjeldendeAzureBrukerMock,
sistEndretAv: gjeldendeAzureBrukerMock,
datoEndret: '1980-01-12',
antallIdenter: 1,
antallBestillinger: 3,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
export enum TestComponentSelectors {
INPUT_MINSIDE_SOEK_MAL = 'input-minside-mal',
INPUT_TESTNORGE_FNR = 'input-testnorge-fnr',
INPUT_TENORSOEK_FNR = 'input-tenorsoek-fnr',
INPUT_NAVN = 'input-navn',
INPUT_NY_GRUPPE_NAVN = 'input-ny-gruppe-navn',
INPUT_NY_GRUPPE_HENSIKT = 'input-ny-gruppe-hensikt',
Expand Down Expand Up @@ -34,6 +33,7 @@ export enum TestComponentSelectors {
TITLE_TENOR_HEADER_COUNTER = 'title-tenor-header-counter',
BUTTON_NY_GRUPPE = 'button-ny-gruppe',
BUTTON_LOGIN_NAV = 'button-login-nav',
BUTTON_LOGIN_BANKID = 'button-login-bankid',
BUTTON_OPPRETT = 'button-opprett',
BUTTON_OPPRETT_PERSONER = 'button-opprett-personer',
BUTTON_OPPRETT_ORGANISASJON = 'button-opprett-organisasjon',
Expand Down Expand Up @@ -94,6 +94,7 @@ export enum TestComponentSelectors {
BUTTON_ORGANISASJON_TENORSOEK = 'button-organisasjon-tenorsoek',
BUTTON_TENOR_CLEAR_HEADER = 'button-tenor-clear-options',
BUTTON_MODAL_CLOSE = 'button-modal-lukk',
BUTTON_VELG_ORG_BRUKER = 'button-velg-org-bruker',
SELECT_PERSON_SEARCH = 'select-person-search',
SELECT_MAL = 'select-mal',
HOVER_MILJOE = 'hover-miljoe',
Expand Down
28 changes: 28 additions & 0 deletions apps/dolly-frontend/src/main/js/playwright/tests/Bankid.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { expect, test } from '#/globalSetup'
import { TestComponentSelectors } from '#/mocks/Selectors'
import { gjeldendeBankidBrukerMock, personOrgTilgangMock } from '#/mocks/BasicMocks'

test.describe('Bankid testing', () => {
test('passes', async ({ page }) => {
await page.route(new RegExp(/current/), async (route) => {
await route.fulfill({
status: 200,
body: JSON.stringify(gjeldendeBankidBrukerMock),
headers: { 'content-type': 'application/json' },
})
})
await page.route(new RegExp(/testnav-person-organisasjon-tilgang-service/), async (route) => {
await route.fulfill({
status: 200,
body: JSON.stringify(personOrgTilgangMock),
headers: { 'content-type': 'application/json' },
})
})
await page.goto('login')
await page.getByTestId(TestComponentSelectors.BUTTON_LOGIN_BANKID).click()
await page.goto('bruker')
await page.getByTestId(TestComponentSelectors.BUTTON_VELG_ORG_BRUKER).click()

await expect(page).toHaveURL(/\/gruppe/)
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { BrukerApi, PersonOrgTilgangApi, SessionApi } from '@/service/Api'
import { NotFoundError } from '@/error'
import { Navigate } from 'react-router-dom'
import { navigateToLogin } from '@/components/utlogging/navigateToLogin'
import { Logger } from '@/logger/Logger'

const ORG_ERROR = 'organisation_error'
const UNKNOWN_ERROR = 'unknown_error'
Expand All @@ -22,14 +23,33 @@ export default () => {
PersonOrgTilgangApi.getOrganisasjoner()
.then((response: OrgResponse) => {
if (response === null || response.data === null || response.data.length === 0) {
Logger.error({
event: 'Ukjent feil ved henting av organisasjoner for bankid bruker',
message: 'Ukjent feil ved henting av organisasjoner for bankid bruker',
uuid: window.uuid,
})
navigateToLogin(UNKNOWN_ERROR)
}
setOrganisasjoner(response.data)
setModalHeight(310 + 55 * response.data.length)
setLoading(false)
})
.catch((_e: NotFoundError) => navigateToLogin(ORG_ERROR))
.catch((_e: Error) => navigateToLogin(UNKNOWN_ERROR))
.catch((_e: NotFoundError) => {
Logger.error({
event: 'Fant ingen organisasjoner for bankid bruker',
message: 'Fant ingen organisasjoner for bankid bruker',
uuid: window.uuid,
})
navigateToLogin(ORG_ERROR)
})
.catch((e: Error) => {
Logger.error({
event: e.name,
message: e.message,
uuid: window.uuid,
})
navigateToLogin(UNKNOWN_ERROR)
})
}, [])

const selectOrganisasjon = (org: Organisasjon) => {
Expand All @@ -41,19 +61,38 @@ export default () => {
if (response !== null) {
addToSession(org.organisasjonsnummer)
} else {
Logger.error({
event: 'Ukjent feil ved henting av bankid bruker fra bruker-service',
message: 'Ukjent feil ved henting av bankid bruker fra bruker-service',
uuid: window.uuid,
})
navigateToLogin(UNKNOWN_ERROR)
}
})
.catch((_e: NotFoundError) => {
setLoading(false)
})
.catch((_e: Error) => {
.catch((e: Error) => {
Logger.error({
event: e.name,
message: e.message,
uuid: window.uuid,
})
navigateToLogin(UNKNOWN_ERROR)
})
}

const addToSession = (org: string) => {
SessionApi.addToSession(org).then(() => setSessionUpdated(true))
SessionApi.addToSession(org)
.then(() => setSessionUpdated(true))
.catch(() => {
Logger.error({
event: 'Klarte ikke å sette session for bankid bruker',
message: 'Klarte ikke å sette session for bankid bruker',
uuid: window.uuid,
})
setSessionUpdated(false)
})
}

if (sessionUpdated) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { DollyFieldArrayWrapper } from '@/components/ui/form/fieldArray/DollyFie
import { ErrorBoundary } from '@/components/ui/appError/ErrorBoundary'
import { Organisasjon } from '@/pages/brukerPage/types'
import React from 'react'
import { TestComponentSelectors } from '#/mocks/Selectors'

type OrganisasjonVelgerProps = {
orgdata: Organisasjon[]
Expand All @@ -22,7 +23,11 @@ export default (props: OrganisasjonVelgerProps) => {
{props.orgdata.map((org: Organisasjon, idx: number) => {
return (
<React.Fragment key={idx}>
<NavButton className="org-button" onClick={() => props.onClick(org)}>
<NavButton
data-testid={TestComponentSelectors.BUTTON_VELG_ORG_BRUKER}
className="org-button"
onClick={() => props.onClick(org)}
>
{org.navn}
</NavButton>
</React.Fragment>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ export default () => {
Logg inn med NAV epost
</NavButton>
<NavButton
data-testid={TestComponentSelectors.BUTTON_LOGIN_BANKID}
className="login-modal_button-bankid"
variant={'primary'}
onClick={redirectOnClick('/oauth2/authorization/idporten', true)}
Expand Down
9 changes: 0 additions & 9 deletions apps/organisasjon-tilgang-frontend/.run/install.run.xml

This file was deleted.

9 changes: 0 additions & 9 deletions apps/organisasjon-tilgang-frontend/.run/start.run.xml

This file was deleted.

6 changes: 0 additions & 6 deletions apps/organisasjon-tilgang-frontend/Dockerfile

This file was deleted.

16 changes: 0 additions & 16 deletions apps/organisasjon-tilgang-frontend/README.md

This file was deleted.

Loading

0 comments on commit 237ef46

Please sign in to comment.