-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Migrere playwright til verdikjede (#2501)
* flytter tester til e2e * sletter playwright config * fjerne fra workflows også. #2497 trigger samme tester i verdikjede * fikser tester * oppdatere readme * reservere og gå til k9-sak-web * tester for reservasjoner * reservasjoner * reservasjoner avdelingsleder * skipper alt med reservasjoner til vi har deploy med issues eller prodsatt ny los * variabel for saksnummer * Update README.md * fjerne ubrukt import
- Loading branch information
Showing
11 changed files
with
307 additions
and
186 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
Workspace for e2e-tester for k9-los-web med Playwright. | ||
|
||
# Komme i gang | ||
|
||
1. For å kunne kjøre testene i dette prosjektet må saksbehandlingsstacken kjøre lokalt (se [utvikleroppsett for k9-verdikjede](https://github.com/navikt/k9-verdikjede/tree/master/docs/utvikleroppsett)). | ||
2. Kjør opp docker-containerene i verdikjede (https://github.com/navikt/k9-verdikjede) | ||
|
||
Kjør opp verdikjeden inkl k9-los-web. | ||
|
||
``` | ||
docker-compose up -d k9-los-web | ||
``` | ||
|
||
Dersom du vil kjøre frontend lokalt selv kan du skrive følgende. | ||
|
||
``` | ||
docker-compose up -d k9-los | ||
``` | ||
|
||
Se README.md i root for mer info angående kjøring av k9-sak-web utenfor docker | ||
|
||
3. yarn test:e2e i /e2e for å kjøre testene |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
import { test, expect } from '@playwright/test'; | ||
|
||
const lagNyBehandlingskø = async (page: any, kønavn: string) => { | ||
await page.goto('/'); | ||
await page.getByRole('button', { name: 'Avdelingslederpanel' }).click(); | ||
await page.getByRole('link', { name: 'Nye behandlingskøer' }).click(); | ||
await page.getByRole('button', { name: 'Legg til ny behandlingskø' }).click(); | ||
await page.getByLabel('Kønavn').fill(kønavn); | ||
await page.getByLabel('Kønavn').press('Enter'); | ||
await page.getByLabel('Velg saksbehandlere').click(); | ||
await page.getByLabel('Velg saksbehandlere').fill('saks'); | ||
await page.getByLabel('Saksbehandler Sara').click(); | ||
await page.getByRole('button', { name: 'Legg til saksbehandlere' }).click(); | ||
await page.getByLabel('Beskrivelse').click(); | ||
await page.getByLabel('Beskrivelse').fill('aisjdfiasjdfiasdfjasidfj'); | ||
await page.getByRole('button', { name: 'Lagre behandlingskø' }).click(); | ||
await page.getByTestId('lagre-button-modal').click(); | ||
await page.getByRole('button', { name: 'Lukk' }).click(); | ||
}; | ||
|
||
function formatDate(date: Date): string { | ||
return `${String(date.getDate()).padStart(2, '0')}.${String(date.getMonth() + 1).padStart( | ||
2, | ||
'0', | ||
)}.${date.getFullYear()}`; | ||
} | ||
|
||
const saksnummer = process.env.SAKSNUMMER as string; | ||
|
||
test.beforeEach(async ({ page }) => { | ||
await page.goto('/'); | ||
}); | ||
|
||
test('Kan søke opp og reservere opppgave', async ({ page }) => { | ||
const searchInput = page.getByLabel('Saksnummer, fødselsnummer/D-nummer eller journalpostID'); | ||
await searchInput.click(); | ||
await searchInput.fill(saksnummer); | ||
|
||
const searchButton = page.getByRole('button', { name: 'Søk' }); | ||
await expect(searchButton).toBeEnabled(); | ||
await searchButton.click(); | ||
|
||
await page.waitForResponse((response) => response.url().includes('/api/fagsak/sok') && response.status() === 200); | ||
|
||
const searchResult = page.getByRole('cell', { name: saksnummer }); | ||
await expect(searchResult).toBeVisible(); | ||
await searchResult.click(); | ||
|
||
expect(page.getByText('Ønsker du å reservere behandlingen?')).toBeVisible(); | ||
await page.getByRole('button', { name: 'Ja' }).click(); | ||
|
||
await page.waitForResponse( | ||
(response) => response.url().includes('/api/saksbehandler/oppgaver/reserver') && response.status() === 200, | ||
); | ||
}); | ||
|
||
test.skip('kan legge tilbake reservasjon i felles kø', async ({ page }) => { | ||
await expect(page.getByRole('cell', { name: saksnummer })).toBeVisible(); | ||
await page.getByRole('img', { name: 'Handlinger på oppgave' }).click(); | ||
await page.getByRole('button', { name: 'Legg behandling tilbake i felles kø' }).click(); | ||
await page.getByLabel('Når en reservert sak frigjøres er begrunnelse obligatorisk').fill('Dette er en god grunn'); | ||
await page.getByRole('button', { name: 'OK' }).click(); | ||
|
||
await expect(page.getByRole('cell', { name: saksnummer })).not.toBeVisible(); | ||
}); | ||
|
||
test.skip('kan plukke oppgave fra kø og reservere', async ({ page }) => { | ||
const kønavn = 'bra kø'; | ||
await lagNyBehandlingskø(page, kønavn); | ||
await page.goto('/'); | ||
await page.getByLabel('Velg behandlingskø').selectOption(kønavn); | ||
await page.getByRole('button', { name: 'Gi meg neste behandling' }).click(); | ||
await page.waitForResponse( | ||
(response) => response.url().includes('/api/saksbehandler/oppgaver/reserver') && response.status() === 200, | ||
); | ||
}); | ||
|
||
test.skip('kan forlenge reservasjon', async ({ page }) => { | ||
await page.getByRole('row', { name: saksnummer }).getByRole('img', { name: 'Handlinger på oppgave' }).click(); | ||
const today = new Date(); | ||
const todayFormatted = formatDate(today); | ||
|
||
await page.getByRole('cell', { name: `Reservert til ${todayFormatted}` }).isVisible(); | ||
await page.getByRole('button', { name: 'Forleng din reservasjon av behandlingen med 24 timer' }).click(); | ||
|
||
const tomorrow = formatDate(new Date(today.getDate() + 1)); | ||
await page.getByRole('cell', { name: `Reservert til ${tomorrow}` }).isVisible(); | ||
}); | ||
|
||
test.skip('kan endre/og flytte reservasjon reservasjon', async ({ page }) => { | ||
await page.getByRole('row', { name: saksnummer }).getByRole('img').click(); | ||
await page.getByRole('button', { name: 'Endre og/eller flytte' }).click(); | ||
await page.getByLabel('Saksbehandlers navn').click(); | ||
await page.getByLabel('Saksbehandlers navn').fill('Sara'); | ||
await page.getByLabel('Endre og/eller flytte').getByRole('button', { name: 'Søk' }).click(); | ||
// Get a date one week from now | ||
const date = new Date(); | ||
date.setDate(date.getDate() + 7); | ||
|
||
// Format the date as dd.mm.yyyy | ||
const oneWeekFromNow = formatDate(date); | ||
// fill with date one week in the future dd.mm.yyyy this format | ||
await page.getByLabel(/^Velg dato som reservasjonen avsluttes \(Valgfritt å fylle ut\)$/).fill(oneWeekFromNow); | ||
await page.getByLabel('Begrunn endring av reservasjon').click(); | ||
await page | ||
.getByLabel('Begrunn endring av reservasjon') | ||
.fill('jeg ønsker å ha denne oppgaven liggende på min benk skikkelig lenge '); | ||
await page.getByRole('button', { name: 'OK' }).click(); | ||
await page.getByRole('cell', { name: `Reservert til ${oneWeekFromNow}` }).isVisible(); | ||
}); | ||
test.skip('kan endre reservasjon som avdelingsleder', async ({ page }) => { | ||
await page.goto('/avdelingsleder'); | ||
await page.getByRole('link', { name: 'Reservasjoner' }).click(); | ||
await page.getByRole('row', { name: saksnummer }).getByRole('cell').nth(4).click(); | ||
await page.getByRole('button', { name: 'Flytt reservasjonen til annen saksbehandler' }).click(); | ||
await page.getByLabel('Saksbehandlers navn').click(); | ||
await page.getByLabel('Saksbehandlers navn').fill('Sara'); | ||
await page.getByLabel('Endre og/eller flytte').getByRole('button', { name: 'Søk' }).click(); | ||
// Get a date two weeks from now | ||
const date = new Date(); | ||
date.setDate(date.getDate() + 14); | ||
|
||
const twoWeeksFromNow = formatDate(date); | ||
await page.getByLabel(/^Velg dato som reservasjonen avsluttes \(Valgfritt å fylle ut\)$/).fill(twoWeeksFromNow); | ||
await page.getByLabel('Begrunn endring av reservasjon').click(); | ||
await page | ||
.getByLabel('Begrunn endring av reservasjon') | ||
.fill('jeg ønsker å ha denne oppgaven liggende på min benk skikkelig lenge '); | ||
await page.getByRole('button', { name: 'OK' }).click(); | ||
await page.getByRole('cell', { name: `Reservert til ${twoWeeksFromNow}` }).isVisible(); | ||
}); | ||
|
||
test.skip('kan fjerne reservasjon som avdelingsleder', async ({ page }) => { | ||
await page.goto('/avdelingsleder'); | ||
await page.getByRole('link', { name: 'Reservasjoner' }).click(); | ||
await page.getByRole('row', { name: saksnummer }).getByRole('cell').nth(4).click(); | ||
await page.getByRole('button', { name: 'Legg behandling tilbake i felles kø' }).click(); | ||
await page.getByLabel('Når en reservert sak frigjøres er begrunnelse obligatorisk').fill('Dette er en god grunn'); | ||
await page.getByRole('button', { name: 'OK' }).click(); | ||
|
||
await page.waitForResponse( | ||
(response) => response.url().includes('/api/saksbehandler/oppgaver/opphev') && response.status() === 200, | ||
); | ||
expect(page.getByRole('row', { name: saksnummer })).not.toBeVisible(); | ||
}); |
Oops, something went wrong.