Skip to content

Commit 95e16a0

Browse files
committed
Refaktorerer og robustifiserer tester litt. Flytter operasjoner som brukes flere steder til egne funksjoner
1 parent 8a69a3e commit 95e16a0

File tree

1 file changed

+116
-103
lines changed

1 file changed

+116
-103
lines changed

client/cypress/e2e/5_notater.cy.ts

Lines changed: 116 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -9,56 +9,25 @@ describe('Håndtering av notater', () => {
99
})
1010

1111
it('skal kunne opprette et internt notat med tittel og tekst', () => {
12-
plukkSak('Søknad')
13-
cy.findByRole('tab', { name: /notater/i }).click()
14-
cy.findByRole('radio', { name: /internt arbeidsnotat/i }).click({ force: true })
15-
16-
cy.get('form[name="internt-notat-form"]').within(() => {
17-
cy.findAllByRole('textbox').eq(0).type('Tittel på internt notat')
18-
cy.findAllByRole('textbox').eq(1).type('Tekst i det interne notatet')
19-
})
12+
åpnetNotatTab()
13+
lagInterntNotat()
2014

21-
cy.findByRole('button', { name: /opprett internt notat/i }).click()
22-
23-
cy.findAllByTestId(/notat-card/i)
24-
.should('have.length.at.least', 2) // Fordi det allerede ligger et ferdig notat der i testdatane
25-
.first()
26-
.should('contain.text', 'Tittel på internt notat')
27-
.and('contain.text', 'Tekst i det interne notatet')
15+
assertNotatInnholdEr('Tittel på internt notat', 'Tekst i det interne notatet')
2816
})
2917

3018
it('skal kunne opprette et forvaltningsnotat interne saksopplysninger med tittel og tekst', () => {
31-
plukkSak('Søknad')
32-
cy.findByRole('tab', { name: /notater/i }).click()
33-
cy.findByRole('radio', { name: /forvaltningsnotat/i }).click({ force: true })
19+
åpnetNotatTab()
20+
lagForvaltningsNotat('Interne saksopplysninger')
3421

35-
cy.get('form[name="forvaltningsnotat-form"]').within(() => {
36-
cy.findByRole('radio', { name: /Interne saksopplysninger/i }).check()
37-
cy.findAllByRole('textbox').eq(0).type('Tittel på forvaltningsnotat')
38-
cy.findAllByRole('textbox').eq(1).type('Tekst i forvaltningsnotat')
39-
})
40-
41-
cy.findByRole('button', { name: /journalfør notat/i }).click()
42-
43-
cy.findAllByTestId(/notat-card/i)
44-
.should('have.length.at.least', 2) // Fordi det allerede ligger et ferdig notat der i testdatane
45-
.first()
46-
.should('contain.text', 'Tittel på forvaltningsnotat')
47-
.and('contain.text', 'Tekst i forvaltningsnotat')
22+
assertNotatInnholdEr('Tittel på forvaltningsnotat', 'Tekst i forvaltningsnotat')
4823
})
4924

5025
it('skal kunne opprette et forvaltningsnotat eksterne saksopplysninger med tittel og tekst', () => {
51-
plukkSak('Søknad')
52-
cy.findByRole('tab', { name: /notater/i }).click()
26+
åpnetNotatTab()
5327
cy.findByRole('radio', { name: /forvaltningsnotat/i }).click({ force: true })
5428

55-
cy.get('form[name="forvaltningsnotat-form"]').within(() => {
56-
cy.findByRole('radio', { name: /Eksterne saksopplysninger/i }).check()
57-
cy.findAllByRole('textbox').eq(0).type('Tittel på forvaltningsnotat')
58-
cy.findAllByRole('textbox').eq(1).type('Tekst i forvaltningsnotat')
59-
})
29+
lagForvaltningsNotat('Eksterne saksopplysninger')
6030

61-
cy.findByRole('button', { name: /journalfør notat/i }).click()
6231
const bekreftModal = cy
6332
.findByRole('dialog', {
6433
name: /er du sikker på at du vil journalføre notatet/i,
@@ -70,81 +39,45 @@ describe('Håndtering av notater', () => {
7039
cy.findByRole('button', { name: /Ja, journalfør notatet/i }).click()
7140
})
7241

73-
cy.findAllByTestId(/notat-card/i)
74-
.should('have.length.at.least', 2) // Fordi det allerede ligger et ferdig notat der i testdatane
75-
.first()
76-
.should('contain.text', 'Tittel på forvaltningsnotat')
77-
.and('contain.text', 'Synlig for bruker')
78-
.and('contain.text', 'Tekst i forvaltningsnotat')
42+
assertNotatInnholdEr('Tittel på forvaltningsnotat', 'Tekst i forvaltningsnotat')
43+
cy.findAllByTestId(/notat-card/i).should('contain.text', 'Synlig for bruker')
7944
})
8045

8146
it('skal kunne feilregistrere notat', () => {
82-
plukkSak('Søknad')
83-
cy.findByRole('tab', { name: /notater/i }).click()
84-
85-
cy.findAllByTestId(/notat-card/i)
86-
.first()
87-
.within(() => {
88-
cy.findByRole('button').click()
89-
})
90-
cy.findByRole('menuitem', { name: /feilregistrer/i })
91-
.should('be.visible')
92-
.click()
47+
åpnetNotatTab()
9348

94-
cy.findByRole('dialog', {
95-
name: /Er du sikker på at du vil feilregistrere forvaltningsnotatet/i,
96-
})
97-
.should('be.visible')
98-
.within(() => {
99-
cy.findAllByRole('radio').first().check()
100-
cy.findByRole('button', { name: /ja, feilregistrer forvaltningsnotatet/i }).click()
101-
})
49+
feilregistrerNotat()
10250
cy.findAllByTestId(/notat-card/i).should('have.length', 0)
10351
})
10452

10553
it('skal lagre utkast når tittel eller tekst endres', () => {
106-
plukkSak('Søknad')
107-
cy.findByRole('tab', { name: /notater/i })
108-
.should('be.visible')
109-
.click()
54+
åpnetNotatTab()
11055
cy.findByRole('radio', { name: /internt arbeidsnotat/i }).click({ force: true })
11156

112-
cy.findByTestId('utkast-lagret').should('not.exist')
113-
cy.findByTestId('utkast-badge').should('not.exist')
114-
cy.findByTestId('notatteller').should('contain.text', '1')
57+
assertUtkastEr('ikke synlig')
58+
assertNotattellerEr('1')
11559

11660
cy.get('form[name="internt-notat-form"]').within(() => {
11761
cy.findAllByRole('textbox').eq(0).type('Tittel på internt notat')
11862
})
11963

120-
cy.findByTestId('utkast-lagret').should('be.visible')
121-
cy.findByTestId('utkast-badge').should('be.visible')
122-
cy.findByTestId('notatteller').should('contain.text', '2')
123-
124-
cy.findByRole('button', { name: /slett utkast/i }).click()
125-
cy.findByRole('button', { name: /ja, slett utkast/i })
126-
.should('be.visible')
127-
.click()
128-
129-
cy.findByTestId('utkast-lagret').should('not.exist')
130-
cy.findByTestId('utkast-badge').should('not.exist')
131-
cy.findByTestId('notatteller').should('contain.text', '1')
64+
assertUtkastEr('synlig')
65+
assertNotattellerEr('2')
66+
slettUtkast()
67+
assertUtkastEr('ikke synlig')
68+
assertNotattellerEr('1')
13269

13370
cy.findByRole('radio', { name: /forvaltningsnotat/i }).click({ force: true })
13471
cy.get('form[name="forvaltningsnotat-form"]').within(() => {
13572
cy.findAllByRole('textbox').eq(1).type('Tekst i forvaltningsnotatet')
13673
})
13774

138-
cy.findByTestId('utkast-lagret').should('be.visible')
139-
cy.findByTestId('utkast-badge').should('be.visible')
140-
cy.findByTestId('notatteller').should('contain.text', '2')
75+
assertUtkastEr('synlig')
76+
assertNotattellerEr('2')
14177
})
14278

14379
it('innvilgelse av søknad stoppes hvis saken har aktive notatutkast', () => {
144-
plukkSak('Søknad')
145-
cy.findByRole('tab', { name: /notater/i })
146-
.should('be.visible')
147-
.click()
80+
åpnetNotatTab()
14881
cy.findByRole('radio', { name: /internt arbeidsnotat/i }).click({ force: true })
14982

15083
cy.get('form[name="internt-notat-form"]').within(() => {
@@ -156,20 +89,17 @@ describe('Håndtering av notater', () => {
15689
.next('ul')
15790
.should('contain.text', 'Du har et utkast til notat som må ferdigstilles eller slettes')
15891

159-
cy.findByRole('button', { name: /slett utkast/i }).click()
160-
cy.findByRole('button', { name: /ja, slett utkast/i })
92+
slettUtkast()
93+
assertUtkastEr('ikke synlig')
94+
95+
cy.findByRole('button', { name: /innvilg søknaden/i })
16196
.should('be.visible')
16297
.click()
163-
164-
cy.findByRole('button', { name: /innvilg søknaden/i }).click()
16598
cy.findByRole('dialog', { name: /vil du innvilge søknaden/i }).should('be.visible')
16699
})
167100

168-
it.only('overføring av søknad til gosys stoppes hvis saken har aktive notatutkast', () => {
169-
plukkSak('Søknad')
170-
cy.findByRole('tab', { name: /notater/i })
171-
.should('be.visible')
172-
.click()
101+
it('overføring av søknad til gosys stoppes hvis saken har aktive notatutkast', () => {
102+
åpnetNotatTab()
173103
cy.findByRole('radio', { name: /internt arbeidsnotat/i }).click({ force: true })
174104

175105
cy.get('form[name="internt-notat-form"]').within(() => {
@@ -182,14 +112,97 @@ describe('Håndtering av notater', () => {
182112
.should('contain.text', 'Du har et utkast til notat som må ferdigstilles eller slettes')
183113
cy.findByRole('dialog', { name: /vil du overføre saken til gosys/i }).should('not.exist')
184114

185-
cy.findByRole('button', { name: /slett utkast/i }).click()
186-
cy.findByRole('button', { name: /ja, slett utkast/i })
187-
.should('be.visible')
188-
.click()
115+
slettUtkast()
116+
assertUtkastEr('ikke synlig')
189117

190118
cy.findByRole('button', { name: /overfør til gosys/i })
191119
.should('be.visible')
192120
.click()
193121
cy.findByRole('dialog', { name: /vil du overføre saken til gosys/i }).should('be.visible')
194122
})
195123
})
124+
125+
function lagInterntNotat() {
126+
cy.findByRole('radio', { name: /internt arbeidsnotat/i }).click({ force: true })
127+
cy.get('form[name="internt-notat-form"]').within(() => {
128+
cy.findAllByRole('textbox').eq(0).type('Tittel på internt notat')
129+
cy.findAllByRole('textbox').eq(1).type('Tekst i det interne notatet')
130+
})
131+
132+
cy.findByRole('button', { name: /opprett internt notat/i }).click()
133+
}
134+
135+
function assertNotatInnholdEr(tittel: string, tekst: string) {
136+
cy.findAllByTestId(/notat-card/i)
137+
.should('have.length.at.least', 2) // Fordi det allerede ligger et ferdig notat der i testdatane
138+
.first()
139+
.should('contain.text', tittel)
140+
.and('contain.text', tekst)
141+
}
142+
143+
function feilregistrerNotat() {
144+
cy.findAllByTestId(/notat-card/i)
145+
.first()
146+
.within(() => {
147+
cy.findByRole('button').click()
148+
})
149+
cy.findByRole('menuitem', { name: /feilregistrer/i })
150+
.should('be.visible')
151+
.click()
152+
153+
cy.findByRole('dialog', {
154+
name: /Er du sikker på at du vil feilregistrere forvaltningsnotatet/i,
155+
})
156+
.should('be.visible')
157+
.within(() => {
158+
cy.findAllByRole('radio').first().check()
159+
cy.findByRole('button', { name: /ja, feilregistrer forvaltningsnotatet/i }).click()
160+
})
161+
}
162+
163+
function assertUtkastEr(synlig: 'synlig' | 'ikke synlig') {
164+
if (synlig === 'synlig') {
165+
cy.findByTestId('utkast-lagret').should('be.visible')
166+
cy.findByTestId('utkast-badge').should('be.visible')
167+
} else {
168+
cy.findByTestId('utkast-lagret').should('not.exist')
169+
cy.findByTestId('utkast-badge').should('not.exist')
170+
}
171+
}
172+
173+
function assertNotattellerEr(antall: string) {
174+
cy.findByTestId('notatteller').should('contain.text', antall)
175+
}
176+
177+
function åpnetNotatTab() {
178+
plukkSak('Søknad')
179+
cy.findByRole('tab', { name: /notater/i }).click()
180+
}
181+
182+
function lagForvaltningsNotat(klassifisering: 'Interne saksopplysninger' | 'Eksterne saksopplysninger') {
183+
cy.findByRole('radio', { name: /forvaltningsnotat/i }).click({ force: true })
184+
185+
cy.get('form[name="forvaltningsnotat-form"]').within(() => {
186+
cy.findByRole('radio', { name: new RegExp(klassifisering, 'i') }).check()
187+
cy.findAllByRole('textbox').eq(0).type('Tittel på forvaltningsnotat')
188+
cy.findAllByRole('textbox').eq(1).type('Tekst i forvaltningsnotat')
189+
190+
cy.findByRole('button', { name: /journalfør notat/i }).click()
191+
})
192+
}
193+
194+
function slettUtkast() {
195+
cy.findByRole('button', { name: /slett utkast/i }).click()
196+
cy.findByRole('dialog', {
197+
name: /er du sikker på at du vil slette/i,
198+
})
199+
.should('be.visible')
200+
.within(() => {
201+
cy.findByRole('button', { name: /ja, slett utkast/i })
202+
.should('be.visible')
203+
.click()
204+
})
205+
cy.findByRole('dialog', {
206+
name: /er du sikker på at du vil slette/i,
207+
}).should('not.exist')
208+
}

0 commit comments

Comments
 (0)