forked from Arquisoft/wiq_0
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Añadidos test e2e de ranking para cambiar modo de juego y filtrado
- Loading branch information
Showing
4 changed files
with
137 additions
and
0 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,6 @@ | ||
Feature: Seeing ranking and changing sorting filter | ||
|
||
Scenario: The user can see the Ranking page and change sorting filter | ||
Given A logged-in user | ||
When I click on the Ranking link and in Sort by Total Points | ||
Then The ranking (sorted by Total Points) should be shown on screen |
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,6 @@ | ||
Feature: Seeing ranking and changing gamemode | ||
|
||
Scenario: The user can see the Ranking page and change gamemode | ||
Given A logged-in user | ||
When I click on the Ranking link and in Battery gamemode | ||
Then The ranking of the Battery gamemode should be shown on screen |
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,63 @@ | ||
const puppeteer = require("puppeteer"); | ||
const { defineFeature, loadFeature } = require("jest-cucumber"); | ||
const setDefaultOptions = require("expect-puppeteer").setDefaultOptions; | ||
const { expect } = require("expect-puppeteer"); | ||
const feature = loadFeature("./features/register-form.feature"); | ||
|
||
let page; | ||
let browser; | ||
|
||
defineFeature(feature, (test) => { | ||
beforeAll(async () => { | ||
browser = process.env.GITHUB_ACTIONS | ||
? await puppeteer.launch() | ||
: await puppeteer.launch({ headless: false, slowMo: 100 }); | ||
page = await browser.newPage(); | ||
//Way of setting up the timeout | ||
setDefaultOptions({ timeout: 10000 }); | ||
|
||
await page | ||
.goto("http://localhost:3000", { | ||
waitUntil: "networkidle0", | ||
}) | ||
.catch(() => {}); | ||
}); | ||
|
||
test("The user can see the Ranking page and change sorting filter", ({ given, when, then }) => { | ||
let username; | ||
let password; | ||
|
||
given("A logged-in user", async () => { | ||
username="testuser"; | ||
password="Testpassword1"; | ||
await page.waitForSelector("#login-username"); | ||
await page.type("#login-username", username); | ||
await page.waitForSelector("#login-password"); | ||
await page.type("#login-password", password); | ||
await page.click("button", { text: "Login" }); | ||
await page.waitForNavigation({ waitUntil: "networkidle0" }); | ||
}); | ||
|
||
when("I click on the Ranking link and in Sort by Total Points", async () => { | ||
await page.waitForSelector('[data-testid="ranking-link"]'); | ||
await page.click('[data-testid="ranking-link"]'); | ||
await page.select('[data-testid="combobox"]', "totalPoints"); | ||
await page.waitForSelector('th', { text: "Puntos totales" }); | ||
await page.waitForSelector('td'); | ||
await page.waitForNavigation({ waitUntil: "networkidle0" }); | ||
}); | ||
|
||
then("The ranking (sorted by Total Points) should be shown on screen", async () => { | ||
const url = page.url(); | ||
expect(url).toContain("/ranking"); | ||
const displayedField = await page.evaluate(() => { | ||
return document.querySelector('th').textContent; | ||
}); | ||
expect(displayedField).toContain("Puntos totales"); | ||
}); | ||
}); | ||
|
||
afterAll(async () => { | ||
browser.close(); | ||
}); | ||
}); |
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,62 @@ | ||
const puppeteer = require("puppeteer"); | ||
const { defineFeature, loadFeature } = require("jest-cucumber"); | ||
const setDefaultOptions = require("expect-puppeteer").setDefaultOptions; | ||
const { expect } = require("expect-puppeteer"); | ||
const feature = loadFeature("./features/register-form.feature"); | ||
|
||
let page; | ||
let browser; | ||
|
||
defineFeature(feature, (test) => { | ||
beforeAll(async () => { | ||
browser = process.env.GITHUB_ACTIONS | ||
? await puppeteer.launch() | ||
: await puppeteer.launch({ headless: false, slowMo: 100 }); | ||
page = await browser.newPage(); | ||
//Way of setting up the timeout | ||
setDefaultOptions({ timeout: 10000 }); | ||
|
||
await page | ||
.goto("http://localhost:3000", { | ||
waitUntil: "networkidle0", | ||
}) | ||
.catch(() => {}); | ||
}); | ||
|
||
test("The user can see the Ranking page and change gamemode", ({ given, when, then }) => { | ||
let username; | ||
let password; | ||
|
||
given("A logged-in user", async () => { | ||
username="testuser"; | ||
password="Testpassword1"; | ||
await page.waitForSelector("#login-username"); | ||
await page.type("#login-username", username); | ||
await page.waitForSelector("#login-password"); | ||
await page.type("#login-password", password); | ||
await page.click("button", { text: "Login" }); | ||
await page.waitForNavigation({ waitUntil: "networkidle0" }); | ||
}); | ||
|
||
when("I click on the Ranking link and in Battery gamemode", async () => { | ||
await page.waitForSelector('[data-testid="ranking-link"]'); | ||
await page.click('[data-testid="ranking-link"]'); | ||
await page.click('[data-testid="battery-button"]'); | ||
await page.waitForSelector('button.active'); | ||
await page.waitForNavigation({ waitUntil: "networkidle0" }); | ||
}); | ||
|
||
then("The ranking of the Battery gamemode should be shown on screen", async () => { | ||
const url = page.url(); | ||
expect(url).toContain("/ranking"); | ||
const statsText = await page.evaluate(() => { | ||
return document.querySelector("h2").textContent; | ||
}); | ||
expect(statsText).toContain("Batería de sabios"); | ||
}); | ||
}); | ||
|
||
afterAll(async () => { | ||
browser.close(); | ||
}); | ||
}); |