-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Oppsett * Konvertert tester * Fjerner testcafe
- Loading branch information
1 parent
d51e170
commit 4bf7cae
Showing
24 changed files
with
944 additions
and
3,637 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
name: Playwright Tests | ||
on: | ||
push: | ||
branches: [main, master] | ||
pull_request: | ||
branches: [main, master] | ||
|
||
env: | ||
APP: fritak-agp-frontend | ||
IMAGE: ghcr.io/${{ github.repository }}/fritak-agp-frontend:${{ github.sha }} | ||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
NPM_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} | ||
NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} | ||
|
||
jobs: | ||
test: | ||
timeout-minutes: 60 | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-node@v4 | ||
with: | ||
node-version: '22.6' | ||
cache: 'yarn' | ||
registry-url: 'https://npm.pkg.github.com' | ||
- name: Install dependencies | ||
run: npm install -g yarn && yarn | ||
- name: Install Playwright Browsers | ||
run: yarn playwright install --with-deps | ||
- name: Run Playwright tests | ||
run: yarn playwright test | ||
- uses: actions/upload-artifact@v4 | ||
if: always() | ||
with: | ||
name: playwright-report | ||
path: playwright-report/ | ||
retention-days: 30 |
This file was deleted.
Oops, something went wrong.
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
File renamed without changes.
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,18 @@ | ||
import { test, expect } from '@playwright/test'; | ||
|
||
test('has title', async ({ page }) => { | ||
await page.goto('https://playwright.dev/'); | ||
|
||
// Expect a title "to contain" a substring. | ||
await expect(page).toHaveTitle(/Playwright/); | ||
}); | ||
|
||
test('get started link', async ({ page }) => { | ||
await page.goto('https://playwright.dev/'); | ||
|
||
// Click the get started link. | ||
await page.getByRole('link', { name: 'Get started' }).click(); | ||
|
||
// Expects page to have a heading with the name of Installation. | ||
await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible(); | ||
}); |
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,186 @@ | ||
// /e2e/gravid-krav.spec.js | ||
import { test, expect } from '@playwright/test'; | ||
|
||
import gravidKravResponse from './gravidKravResponse'; | ||
import arbeidsgiverResponse from './arbeidsgiverResponse'; | ||
|
||
import clickButton from './helpers/clickSubmit'; | ||
import checkRadiobox from './helpers/checkRadiobox'; | ||
|
||
const arbeidsgiverAPI = /\/api\/v1\/arbeidsgivere/; | ||
const navAuth = /\/person\/innloggingsstatus\/auth/; | ||
const grunnBeloep = /\/api\/v1\/grunnbeloep/; | ||
const innsendingAPI = /\/api\/v1\/gravid\/krav/; | ||
const deko = /\/dekoratoren/; | ||
|
||
const headereJson = { | ||
'content-type': 'application/json; charset=UTF-8', | ||
'access-control-allow-origin': 'http://localhost:3000', | ||
'access-control-allow-credentials': 'true', | ||
'strict-transport-security': 'max-age=15724800; includeSubDomains' | ||
}; | ||
|
||
const headereText = { ...headereJson, 'content-type': 'text/html; charset=UTF-8' }; | ||
headereText['content-type'] = 'text/html; charset=UTF-8'; | ||
|
||
const grunnBeloepVerdier = { | ||
dato: '2021-05-01', | ||
grunnbeloep: 106399, | ||
grunnbeloepPerMaaned: 8867, | ||
gjennomsnittPerAar: 104716, | ||
omregningsfaktor: 1.049807 | ||
}; | ||
|
||
test.describe('Gravid - Krav', () => { | ||
test.beforeEach(async ({ page }) => { | ||
await page.route(arbeidsgiverAPI, (route) => | ||
route.fulfill({ body: JSON.stringify(arbeidsgiverResponse), headers: headereJson }) | ||
); | ||
await page.route(navAuth, (route) => route.fulfill({ body: 'null', headers: headereJson })); | ||
await page.route(grunnBeloep, (route) => | ||
route.fulfill({ body: JSON.stringify(grunnBeloepVerdier), headers: headereJson }) | ||
); | ||
await page.route(innsendingAPI, (route) => | ||
route.fulfill({ body: JSON.stringify(gravidKravResponse), status: 201, headers: headereJson }) | ||
); | ||
await page.route(deko, (route) => route.fulfill({ body: '', status: 201, headers: headereJson })); | ||
|
||
await page.clock.setFixedTime(new Date('2021-08-25T10:00:00')); | ||
|
||
await page.goto('http://localhost:3000/fritak-agp/nb/gravid/krav?bedrift=810007842'); | ||
}); | ||
|
||
test('Klikk submit uten data, fjern feilmeldinger en etter en og send inn', async ({ page }) => { | ||
await clickButton(page, 'Send krav'); | ||
|
||
expect(await page.locator('li > a').allInnerTexts()).toEqual( | ||
expect.arrayContaining([ | ||
'Mangler fødselsnummer', | ||
'Mangler antall arbeidsdager', | ||
'Mangler fra dato', | ||
'Mangler til dato', | ||
'Mangler dager', | ||
'Oppgi beløp med kun tall med maks to tall etter komma', | ||
'Bekreft at opplysningene er korrekt' | ||
]) | ||
); | ||
|
||
await page.getByLabel('Jeg bekrefter at opplysningene jeg har gitt, er riktige og fullstendige.').check(); | ||
await expect(await page.locator('li > a').allInnerTexts()).toEqual( | ||
expect.arrayContaining([ | ||
'Mangler fødselsnummer', | ||
'Mangler antall arbeidsdager', | ||
'Mangler fra dato', | ||
'Mangler til dato', | ||
'Mangler dager', | ||
'Oppgi beløp med kun tall med maks to tall etter komma' | ||
]) | ||
); | ||
await expect(page.locator('.navds-error-summary__list')).not.toContainText('Bekreft at opplysningene er korrekt'); | ||
|
||
await page.getByLabel('Oppgi antall dager dere utbetaler lønn for i året:').fill('260'); | ||
await expect(await page.locator('li > a').allInnerTexts()).toEqual( | ||
expect.arrayContaining([ | ||
'Mangler fødselsnummer', | ||
'Mangler fra dato', | ||
'Mangler til dato', | ||
'Mangler dager', | ||
'Oppgi beløp med kun tall med maks to tall etter komma' | ||
]) | ||
); | ||
await expect(page.locator('.navds-error-summary__list')).not.toContainText([ | ||
'Bekreft at opplysningene er korrekt', | ||
'Mangler antall arbeidsdager' | ||
]); | ||
|
||
const fnr = page.getByLabel('Fødselsnummer (11 siffer)'); | ||
|
||
await fnr.fill('260'); | ||
await expect(await page.locator('li > a').allInnerTexts()).toEqual([ | ||
'Ugyldig fødselsnummer', | ||
'Mangler fra dato', | ||
'Mangler til dato', | ||
'Mangler dager', | ||
'Oppgi beløp med kun tall med maks to tall etter komma' | ||
]); | ||
await expect(page.locator('.navds-error-summary__list')).not.toContainText([ | ||
'Bekreft at opplysningene er korrekt', | ||
'Mangler antall arbeidsdager' | ||
]); | ||
|
||
await fnr.fill('20125027610'); | ||
await expect(await page.locator('li > a').allInnerTexts()).toEqual([ | ||
'Mangler fra dato', | ||
'Mangler til dato', | ||
'Mangler dager', | ||
'Oppgi beløp med kun tall med maks to tall etter komma' | ||
]); | ||
await expect(page.locator('.navds-error-summary__list')).not.toContainText([ | ||
'Ugyldig fødselsnummer', | ||
'Bekreft at opplysningene er korrekt', | ||
'Mangler antall arbeidsdager' | ||
]); | ||
|
||
const belop = page.locator('#belop-0'); | ||
await belop.fill('5000'); | ||
await expect(await page.locator('li > a').allInnerTexts()).toEqual([ | ||
'Mangler fra dato', | ||
'Mangler til dato', | ||
'Mangler dager' | ||
]); | ||
await expect(page.locator('.navds-error-summary__list')).not.toContainText([ | ||
'Oppgi beløp med kun tall med maks to tall etter komma', | ||
'Ugyldig fødselsnummer', | ||
'Bekreft at opplysningene er korrekt', | ||
'Mangler antall arbeidsdager' | ||
]); | ||
|
||
const velgDager = page.locator('#dager-0'); | ||
await velgDager.selectOption({ label: '5' }); | ||
await expect(await page.locator('li > a').allInnerTexts()).toEqual(['Mangler fra dato', 'Mangler til dato']); | ||
await expect(page.locator('.navds-error-summary__list')).not.toContainText([ | ||
'Mangler dager', | ||
'Oppgi beløp med kun tall med maks to tall etter komma', | ||
'Ugyldig fødselsnummer', | ||
'Bekreft at opplysningene er korrekt', | ||
'Mangler antall arbeidsdager' | ||
]); | ||
|
||
await page.getByLabel('Fra dato').fill('07.08.21'); | ||
await expect(page.locator('.navds-error-summary__list')).toContainText('Mangler til dato'); | ||
await expect(page.locator('.navds-error-summary__list')).not.toContainText([ | ||
'Mangler fra dato', | ||
'Mangler dager', | ||
'Oppgi beløp med kun tall med maks to tall etter komma', | ||
'Ugyldig fødselsnummer', | ||
'Bekreft at opplysningene er korrekt', | ||
'Mangler antall arbeidsdager' | ||
]); | ||
|
||
await page.getByLabel('Til dato').fill('17.08.21'); | ||
|
||
await expect(page.locator('.navds-error-summary__list')).not.toContainText([ | ||
'Mangler til dato', | ||
'Mangler fra dato', | ||
'Mangler dager', | ||
'Oppgi beløp med kun tall med maks to tall etter komma', | ||
'Ugyldig fødselsnummer', | ||
'Bekreft at opplysningene er korrekt', | ||
'Mangler antall arbeidsdager' | ||
]); | ||
|
||
await fnr.fill('20125027610'); | ||
await clickButton(page, 'Send krav'); | ||
await expect(page.locator('html')).toContainText('Kravet er mottatt', { timeout: 10000 }); | ||
}); | ||
|
||
test('Legg til og fjern perioder', async ({ page }) => { | ||
await clickButton(page, '+ Legg til en fraværsperiode'); | ||
await expect(page.locator('#belop-0')).toBeVisible(); | ||
await expect(page.locator('#belop-1')).toBeVisible(); | ||
|
||
await page.getByRole('button', { name: 'Slett' }).last().dispatchEvent('click'); | ||
await expect(page.locator('#belop-0')).toBeVisible(); | ||
await expect(page.locator('#belop-1')).not.toBeVisible({ timeout: 500 }); | ||
}); | ||
}); |
Oops, something went wrong.