1
0
Fork 0
forked from svrjs/svrjs
This repository has been archived on 2024-11-10. You can view files and clone it, but cannot push or open issues or pull requests.
svrjs/tests/middleware/defaultHandlerChecks.test.js

55 lines
1.8 KiB
JavaScript
Raw Normal View History

const middleware = require("../../src/middleware/defaultHandlerChecks.js");
const httpMocks = require("node-mocks-http");
describe("Default handler checks middleware", () => {
let req, res, logFacilities, config, next;
beforeEach(() => {
req = httpMocks.createRequest();
res = httpMocks.createResponse();
logFacilities = {
errmessage: jest.fn(),
};
config = {
getCustomHeaders: jest.fn(() => ({})),
generateServerString: jest.fn(() => "Server String"),
};
next = jest.fn();
});
test("should return 501 and log error message if req.isProxy is true", () => {
req.isProxy = true;
middleware(req, res, logFacilities, config, next);
expect(res._getStatusCode()).toBe(501);
expect(logFacilities.errmessage).toHaveBeenCalledWith(
expect.stringContaining("doesn't support proxy without proxy mod."),
);
});
test("should return 204 if req.method is OPTIONS", () => {
req.method = "OPTIONS";
middleware(req, res, logFacilities, config, next);
expect(res._getStatusCode()).toBe(204);
expect(res._getHeaders()).toHaveProperty(
"allow",
"GET, POST, HEAD, OPTIONS",
);
});
test("should call res.error with 405 and log error message if req.method is not GET, POST, or HEAD", () => {
req.method = "PUT";
res.error = jest.fn();
middleware(req, res, logFacilities, config, next);
expect(res.error).toHaveBeenCalledWith(405);
expect(logFacilities.errmessage).toHaveBeenCalledWith(
expect.stringContaining("Invaild method: PUT"),
);
});
test("should call next if req.method is GET, POST, or HEAD and req.isProxy is false", () => {
req.method = "GET";
middleware(req, res, logFacilities, config, next);
expect(next).toHaveBeenCalled();
});
});