Skip to content

Commit 195a7cf

Browse files
committed
user testing is ok
1 parent 3377951 commit 195a7cf

File tree

3 files changed

+316
-1
lines changed

3 files changed

+316
-1
lines changed

nodeapp/models/User.test.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import request from "supertest";
2+
import app from "../app";
3+
import { guard, middleware } from "../lib/sessionManager";
4+
5+
// Podemos mockear funciones internas
6+
jest.mock("../lib/sessionManager", () => ({
7+
guard: jest.fn((req, res, next) => {
8+
// Simular que el usuario no esta autenticado
9+
res.redirect(`/login?redir=${req.url}`);
10+
11+
// Todos los middlewares llaman a next();
12+
next();
13+
}),
14+
middleware: jest.fn((req, res, next) => next()),
15+
useSessionInViews: jest.fn((req, res, next) => next()),
16+
}));
17+
18+
describe("AgentsController", () => {
19+
it("Debería redirigir a la vista de login si no existe una sesión", async () => {
20+
expect.assertions(2);
21+
// Hacer una request a nuestra app
22+
const response = await request(app)
23+
// en la ruta /agents/new
24+
.get("/agents/new");
25+
26+
// Esperamos una redirección a login
27+
expect(response.status).toBe(302);
28+
expect(response.headers.location).toBe("/login?redir=/agents/new");
29+
});
30+
31+
it("debería llamar al guard antes de permitir el acceso a la ruta", async () => {
32+
expect.assertions(1);
33+
const response = await request(app).get("/agents/new");
34+
35+
// El middleware de guard se debe llamar
36+
expect(guard).toHaveBeenCalled();
37+
});
38+
});

0 commit comments

Comments
 (0)