61 lines
2.1 KiB
TypeScript
61 lines
2.1 KiB
TypeScript
import { Request, Response } from "express";
|
|
import { systemTokenMiddleware } from "../systemToken";
|
|
|
|
describe("systemTokenMiddleware", () => {
|
|
const originalSystemKey = process.env.SYSTEM_KEY;
|
|
const originalApiKey = process.env.API_KEY;
|
|
|
|
afterEach(() => {
|
|
process.env.SYSTEM_KEY = originalSystemKey;
|
|
process.env.API_KEY = originalApiKey;
|
|
jest.clearAllMocks();
|
|
});
|
|
|
|
function createResponse(): Response {
|
|
return {
|
|
status: jest.fn().mockReturnThis(),
|
|
json: jest.fn().mockReturnThis(),
|
|
} as unknown as Response;
|
|
}
|
|
|
|
it("allows requests with a valid system token", async () => {
|
|
process.env.SYSTEM_KEY = "system-token";
|
|
const request = { body: { systemToken: "system-token" } } as Request;
|
|
const response = createResponse();
|
|
const next = jest.fn();
|
|
|
|
await systemTokenMiddleware(request, response, next);
|
|
|
|
expect(next).toHaveBeenCalledTimes(1);
|
|
expect(response.status).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it("rejects requests without a valid system token", async () => {
|
|
process.env.SYSTEM_KEY = "system-token";
|
|
const request = { body: { systemToken: "wrong-token" } } as Request;
|
|
const response = createResponse();
|
|
const next = jest.fn();
|
|
|
|
await systemTokenMiddleware(request, response, next);
|
|
|
|
expect(next).not.toHaveBeenCalled();
|
|
expect(response.status).toHaveBeenCalledWith(401);
|
|
expect(response.json).toHaveBeenCalledWith(
|
|
expect.objectContaining({ desc: "Token de sistema inválido" })
|
|
);
|
|
});
|
|
|
|
it("rejects requests when no server-side system token is configured", async () => {
|
|
delete process.env.SYSTEM_KEY;
|
|
delete process.env.API_KEY;
|
|
const request = { body: { systemToken: "system-token" } } as Request;
|
|
const response = createResponse();
|
|
const next = jest.fn();
|
|
|
|
await systemTokenMiddleware(request, response, next);
|
|
|
|
expect(next).not.toHaveBeenCalled();
|
|
expect(response.status).toHaveBeenCalledWith(401);
|
|
});
|
|
});
|