implementation de nodemailer for email validation
This commit is contained in:
89
backend/tests/e2e.flow.test.js
Normal file
89
backend/tests/e2e.flow.test.js
Normal file
@@ -0,0 +1,89 @@
|
||||
const request = require("supertest");
|
||||
const app = require("../src/app");
|
||||
|
||||
describe("THE TIP TOP - FULL E2E FLOW", () => {
|
||||
|
||||
let token;
|
||||
let ticketCode = "ABC123";
|
||||
// ------------------------
|
||||
// 1. REGISTER
|
||||
// ------------------------
|
||||
|
||||
// Test de l'inscription d'un utilisateur
|
||||
test("Register user", async () => {
|
||||
const res = await request(app)
|
||||
.post("/api/auth/register")
|
||||
.send({
|
||||
firstname: "Test",
|
||||
lastname: "User",
|
||||
email: "test@test.com",
|
||||
password: "Password123"
|
||||
});
|
||||
|
||||
// Vérification du code de statut attendu (201 pour succès, 409 si l'utilisateur existe déjà)
|
||||
expect([201, 409]).toContain(res.statusCode);
|
||||
});
|
||||
|
||||
// ------------------------
|
||||
// 2. LOGIN
|
||||
// ------------------------
|
||||
// Test de la connexion d'un utilisateur
|
||||
test("Login user", async () => {
|
||||
const res = await request(app)
|
||||
.post("/api/auth/login")
|
||||
.send({
|
||||
email: "test@test.com",
|
||||
password: "Password123"
|
||||
});
|
||||
|
||||
// Vérification du code de statut attendu (200 pour succès)
|
||||
expect(res.statusCode).toBe(200);
|
||||
expect(res.body.token).toBeDefined();
|
||||
|
||||
token = res.body.token;
|
||||
});
|
||||
|
||||
// ------------------------
|
||||
// 3. PARTICIPATE GAME
|
||||
// ------------------------
|
||||
// Test de la participation à un jeu
|
||||
test("Participate to game", async () => {
|
||||
const res = await request(app)
|
||||
.post("/api/game/participate")
|
||||
.set("Authorization", `Bearer ${token}`)
|
||||
.send({ code: ticketCode });
|
||||
|
||||
// Vérification du code de statut attendu
|
||||
expect([200, 201, 404, 409, 400]).toContain(res.statusCode);
|
||||
});
|
||||
|
||||
// ------------------------
|
||||
// 4. MY GAINS
|
||||
// ------------------------
|
||||
// Test de la récupération des gains d'un utilisateur
|
||||
|
||||
test("Get my gains", async () => {
|
||||
const res = await request(app)
|
||||
.get("/api/game/my-gains")
|
||||
.set("Authorization", `Bearer ${token}`);
|
||||
|
||||
// Vérification du code de statut attendu
|
||||
expect(res.statusCode).toBe(200);
|
||||
expect(res.body.gains).toBeDefined();
|
||||
});
|
||||
|
||||
// ------------------------
|
||||
// 5. ADMIN STATS
|
||||
// ------------------------
|
||||
test("Admin stats - CLIENT access denied", async () => {
|
||||
const res = await request(app)
|
||||
.get("/api/admin/stats")
|
||||
.set("Authorization", `Bearer ${token}`);
|
||||
|
||||
expect(res.statusCode).toBe(403);
|
||||
expect(res.body.message || res.body).toBeDefined();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// Nous avons validé un flux E2E complet garantissant le bon fonctionnement global du système. La couverture actuelle est partielle et peut être enrichie pour couvrir les cas limites et les erreurs métier.
|
||||
Reference in New Issue
Block a user