You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Määritellään npm-skripti testien suorittamista sekä testiraportteja varten
39
31
```js
@@ -1113,32 +1105,41 @@ Testien lopullinen versio on kokonaisuudessaan [GitHubissa](https://github.com/f
1113
1105
1114
1106
### Tehtävät 5.17.-5.23.
1115
1107
1116
-
Tehdään osan lopuksi muutamia E2E-testejä blogisovellukseen. Yllä olevan materiaalin pitäisi riittää ainakin suurimmaksi osaksi tehtävien tekemiseen. Cypressin [dokumentaatiota](https://docs.cypress.io/guides/overview/why-cypress.html#In-a-nutshell) kannattaa ehdottomasti myös lueskella, kyseessä on ehkä paras dokumentaatio, mitä olen koskaan open source ‑projektissa nähnyt.
1117
-
1118
-
Erityisesti kannattaa lukea luku [Introduction to Cypress](https://docs.cypress.io/guides/core-concepts/introduction-to-cypress.html#Cypress-Can-Be-Simple-Sometimes), joka toteaa
1119
-
1120
-
> <i>This is the single most important guide for understanding how to test with Cypress. Read it. Understand it.</i>
1108
+
Tehdään osan lopuksi muutamia E2E-testejä blogisovellukseen. Yllä olevan materiaalin pitäisi riittää suurimman osan tehtävien tekemiseen. Playwrightin [dokumentaatiota]https://playwright.dev/docs/intro) ja [API-kuvausta](https://playwright.dev/docs/api/class-playwright) kannattaa ehdottomasti lukea, ainakin edellisessä luvussa mainitut osat.
1121
1109
1122
1110
#### 5.17: blogilistan end to end ‑testit, step1
1123
1111
1124
-
Konfiguroi Cypress projektiisi. Tee testi, joka varmistaa, että sovellus näyttää oletusarvoisesti kirjautumislomakkeen.
1112
+
Tee uusi npm-projekti testejä varten ja konfiguroi sinne Playwright.
1113
+
1114
+
Tee testi, joka varmistaa, että sovellus näyttää oletusarvoisesti kirjautumislomakkeen.
Testin <i>beforeEach</i>-alustuslohkon tulee nollata tietokannan tilanne esim. [materiaalissa](/osa5/end_to_end_testaus#tietokannan-tilan-kontrollointi) näytetyllä tavalla.
1142
+
Testin <i>beforeEach</i>-alustuslohkon tulee nollata tietokannan tilanne esim. [materiaalissa](/osa5/end_to_end_testaus_playwright#testien-alustus) näytetyllä tavalla.
1142
1143
1143
1144
#### 5.18: blogilistan end to end ‑testit, step2
1144
1145
@@ -1147,23 +1148,23 @@ Tee testit kirjautumiselle, testaa sekä onnistunut että epäonnistunut kirjaut
Tee testi, joka varmistaa, että kirjautunut käyttäjä pystyy luomaan blogin. Testin runko voi näyttää seuraavalta
1176
1177
1177
1178
```js
1178
-
describe('Blog app', function() {
1179
-
// ...
1180
-
1181
-
describe('When logged in', function() {
1182
-
beforeEach(function() {
1183
-
// log in user here
1184
-
})
1185
-
1186
-
it('A blog can be created', function() {
1187
-
// ...
1188
-
})
1179
+
describe('When logged in', () => {
1180
+
beforeEach(async ({ page }) => {
1181
+
// ...
1189
1182
})
1190
1183
1184
+
test('a new blog can be created', async ({ page }) => {
1185
+
// ...
1186
+
})
1191
1187
})
1192
1188
```
1193
1189
@@ -1199,7 +1195,7 @@ Tee testi, joka varmistaa, että blogia voi likettää.
1199
1195
1200
1196
#### 5.21: blogilistan end to end ‑testit, step5
1201
1197
1202
-
Tee testi, joka varmistaa, että blogin lisännyt käyttäjä voi poistaa blogin.
1198
+
Tee testi, joka varmistaa, että blogin lisännyt käyttäjä voi poistaa blogin. Jos käytät poisto-operaation yhteydessä _window.confirm_-dialogia, saatat joutua hieman etsimään miten dialogin käyttö tapahtuu Playwright-testeistä käsin.
1203
1199
1204
1200
#### 5.22: blogilistan end to end ‑testit, step6
1205
1201
@@ -1209,14 +1205,7 @@ Tee testi, joka varmista, että vain blogin lisännyt käyttäjä näkee blogin
1209
1205
1210
1206
Tee testi, joka varmistaa, että blogit järjestetään likejen mukaiseen järjestykseen, eniten likejä saanut blogi ensin.
1211
1207
1212
-
<i>Tämä tehtävä on edellisiä huomattavasti haastavampi.</i> Eräs ratkaisutapa on lisätä tietty luokka elementille, joka sisältää blogin sisällön ja käyttää [eq](https://docs.cypress.io/api/commands/eq#Syntax)-metodia tietyssä indeksissä olevan elementin hakemiseen:
1213
-
1214
-
```js
1215
-
cy.get('.blog').eq(0).should('contain', 'The title with the most likes')
1216
-
cy.get('.blog').eq(1).should('contain', 'The title with the second most likes')
1217
-
```
1218
-
1219
-
Saatat törmätä tässä tehtävässä ongelmaan jos klikkaat monta kertaa peräkkäin <i>like</i>-nappia. Saattaa olla, että näin tehdessä liketykset tehdään samalle oliolle, eli Cypress ei "ehdi" välissä päivittää sovelluksen tilaa. Eräs tapa korjata ongelma on odottaa jokaisen klikkauksen jälkeen että likejen lukumäärä päivittyy ja tehdä uusi liketys vasta tämän jälkeen.
1208
+
<i>Tämä tehtävä on edellisiä huomattavasti haastavampi.</i>
1220
1209
1221
1210
Tämä oli osan viimeinen tehtävä ja on aika pushata koodi GitHubiin sekä merkata tehdyt tehtävät [palautussovellukseen](https://studies.cs.helsinki.fi/stats/courses/fullstackopen).
0 commit comments