feat: implement comprehensive notification engine with policies, preferences, and automated dispatching services
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
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);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user