@jest-mock/express
Version:
A lightweight Jest mock for unit testing Express
373 lines • 17.2 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_RES_KEY_LENGTH = void 0;
// Helpers
const response_1 = require("../helpers/response");
// Tested Module
const response_2 = __importDefault(require("../../response/response"));
exports.DEFAULT_RES_KEY_LENGTH = 84;
describe('response - General', () => {
test('the mock res is provided and contains the expected functions', () => {
const { res } = (0, response_2.default)();
// res contains the expected functions
expect(res).toBeDefined();
expect(Object.keys(res).length).toBe(exports.DEFAULT_RES_KEY_LENGTH);
});
});
describe('response - returns the expected object', () => {
test('it contains the correct amount of properties', () => {
const mockRes = (0, response_2.default)();
// the response contains values for res and next and clear functions
expect(mockRes).toBeInstanceOf(Object);
expect(Object.keys(mockRes).length).toBe(4);
});
test('the res object is provided', () => {
const { res } = (0, response_2.default)();
expect(res).toBeDefined();
expect(res).toBeInstanceOf(Object);
});
test('the mock next function is provided', () => {
const { next } = (0, response_2.default)();
expect(next).toBeDefined();
expect(typeof next).toBe('function');
});
test('the mock next function can be called', () => {
const { next } = (0, response_2.default)();
next();
expect(next).toBeCalledTimes(1);
});
test('the mock clear function is provided', () => {
const { mockClear } = (0, response_2.default)();
expect(mockClear).toBeDefined();
expect(typeof mockClear).toBe('function');
});
test('the mock clear alias function is provided', () => {
const { clearMockRes } = (0, response_2.default)();
expect(clearMockRes).toBeDefined();
expect(typeof clearMockRes).toBe('function');
});
});
describe('response - the mock functions can be cleared', () => {
test('mock clear clears all mocks', () => {
const { res, next, mockClear } = (0, response_2.default)();
// call all of the mock functions
next();
(0, response_1.callAllFunctions)(res);
// ensure they all report as being called
/* express.Response */
expect(next).toBeCalledTimes(1);
expect(res.status).toBeCalledTimes(1);
expect(res.sendStatus).toBeCalledTimes(1);
expect(res.links).toBeCalledTimes(1);
expect(res.send).toBeCalledTimes(1);
expect(res.json).toBeCalledTimes(1);
expect(res.jsonp).toBeCalledTimes(1);
expect(res.sendFile).toBeCalledTimes(1);
expect(res.download).toBeCalledTimes(1);
expect(res.contentType).toBeCalledTimes(1);
expect(res.type).toBeCalledTimes(1);
expect(res.format).toBeCalledTimes(1);
expect(res.attachment).toBeCalledTimes(1);
expect(res.set).toBeCalledTimes(1);
expect(res.header).toBeCalledTimes(1);
expect(res.get).toBeCalledTimes(1);
expect(res.clearCookie).toBeCalledTimes(1);
expect(res.cookie).toBeCalledTimes(1);
expect(res.location).toBeCalledTimes(1);
expect(res.redirect).toBeCalledTimes(1);
expect(res.render).toBeCalledTimes(1);
expect(res.vary).toBeCalledTimes(1);
expect(res.append).toBeCalledTimes(1);
/* http. ServerResponse */
expect(res.assignSocket).toBeCalledTimes(1);
expect(res.detachSocket).toBeCalledTimes(1);
expect(res.writeContinue).toBeCalledTimes(1);
expect(res.writeHead).toBeCalledTimes(1);
expect(res.writeProcessing).toBeCalledTimes(1);
/* http.OutgoingMessage */
expect(res.setTimeout).toBeCalledTimes(1);
expect(res.setHeader).toBeCalledTimes(1);
expect(res.getHeader).toBeCalledTimes(1);
expect(res.getHeaders).toBeCalledTimes(1);
expect(res.getHeaderNames).toBeCalledTimes(1);
expect(res.hasHeader).toBeCalledTimes(1);
expect(res.removeHeader).toBeCalledTimes(1);
expect(res.addTrailers).toBeCalledTimes(1);
expect(res.flushHeaders).toBeCalledTimes(1);
/* stream.Writable */
expect(res._write).toBeCalledTimes(1);
expect(res._writev).toBeCalledTimes(1);
expect(res._destroy).toBeCalledTimes(1);
expect(res._final).toBeCalledTimes(1);
expect(res.write).toBeCalledTimes(1);
expect(res.setDefaultEncoding).toBeCalledTimes(1);
expect(res.end).toBeCalledTimes(1);
expect(res.cork).toBeCalledTimes(1);
expect(res.uncork).toBeCalledTimes(1);
expect(res.destroy).toBeCalledTimes(1);
expect(res.addListener).toBeCalledTimes(1);
expect(res.emit).toBeCalledTimes(1);
expect(res.on).toBeCalledTimes(1);
expect(res.once).toBeCalledTimes(1);
expect(res.prependListener).toBeCalledTimes(1);
expect(res.prependOnceListener).toBeCalledTimes(1);
expect(res.removeListener).toBeCalledTimes(1);
/* event.EventEmitter */
expect(res.addListener).toBeCalledTimes(1);
expect(res.on).toBeCalledTimes(1);
expect(res.once).toBeCalledTimes(1);
expect(res.removeListener).toBeCalledTimes(1);
expect(res.off).toBeCalledTimes(1);
expect(res.removeAllListeners).toBeCalledTimes(1);
expect(res.setMaxListeners).toBeCalledTimes(1);
expect(res.getMaxListeners).toBeCalledTimes(1);
expect(res.listeners).toBeCalledTimes(1);
expect(res.rawListeners).toBeCalledTimes(1);
expect(res.emit).toBeCalledTimes(1);
expect(res.listenerCount).toBeCalledTimes(1);
expect(res.prependListener).toBeCalledTimes(1);
expect(res.prependOnceListener).toBeCalledTimes(1);
expect(res.eventNames).toBeCalledTimes(1);
// clear the mock
mockClear();
// ensure they all have been cleared
/* express.Response */
expect(next).not.toBeCalled();
expect(next).not.toBeCalled();
expect(res.status).not.toBeCalled();
expect(res.sendStatus).not.toBeCalled();
expect(res.links).not.toBeCalled();
expect(res.send).not.toBeCalled();
expect(res.json).not.toBeCalled();
expect(res.jsonp).not.toBeCalled();
expect(res.sendFile).not.toBeCalled();
expect(res.download).not.toBeCalled();
expect(res.contentType).not.toBeCalled();
expect(res.type).not.toBeCalled();
expect(res.format).not.toBeCalled();
expect(res.attachment).not.toBeCalled();
expect(res.set).not.toBeCalled();
expect(res.header).not.toBeCalled();
expect(res.get).not.toBeCalled();
expect(res.clearCookie).not.toBeCalled();
expect(res.cookie).not.toBeCalled();
expect(res.location).not.toBeCalled();
expect(res.redirect).not.toBeCalled();
expect(res.render).not.toBeCalled();
expect(res.vary).not.toBeCalled();
expect(res.append).not.toBeCalled();
/* http.ServerResponse */
expect(res.assignSocket).not.toBeCalled();
expect(res.detachSocket).not.toBeCalled();
expect(res.writeContinue).not.toBeCalled();
expect(res.writeHead).not.toBeCalled();
expect(res.writeProcessing).not.toBeCalled();
/* http.OutgoingMessage */
expect(res.setTimeout).not.toBeCalled();
expect(res.setHeader).not.toBeCalled();
expect(res.getHeader).not.toBeCalled();
expect(res.getHeaders).not.toBeCalled();
expect(res.getHeaderNames).not.toBeCalled();
expect(res.hasHeader).not.toBeCalled();
expect(res.removeHeader).not.toBeCalled();
expect(res.addTrailers).not.toBeCalled();
expect(res.flushHeaders).not.toBeCalled();
/* stream.Writable */
expect(res._write).not.toBeCalled();
expect(res._writev).not.toBeCalled();
expect(res._destroy).not.toBeCalled();
expect(res._final).not.toBeCalled();
expect(res.write).not.toBeCalled();
expect(res.setDefaultEncoding).not.toBeCalled();
expect(res.end).not.toBeCalled();
expect(res.cork).not.toBeCalled();
expect(res.uncork).not.toBeCalled();
expect(res.destroy).not.toBeCalled();
expect(res.addListener).not.toBeCalled();
expect(res.emit).not.toBeCalled();
expect(res.on).not.toBeCalled();
expect(res.once).not.toBeCalled();
expect(res.prependListener).not.toBeCalled();
expect(res.prependOnceListener).not.toBeCalled();
expect(res.removeListener).not.toBeCalled();
/* event.EventEmitter */
expect(res.addListener).not.toBeCalled();
expect(res.on).not.toBeCalled();
expect(res.once).not.toBeCalled();
expect(res.removeListener).not.toBeCalled();
expect(res.off).not.toBeCalled();
expect(res.removeAllListeners).not.toBeCalled();
expect(res.setMaxListeners).not.toBeCalled();
expect(res.getMaxListeners).not.toBeCalled();
expect(res.listeners).not.toBeCalled();
expect(res.rawListeners).not.toBeCalled();
expect(res.emit).not.toBeCalled();
expect(res.listenerCount).not.toBeCalled();
expect(res.prependListener).not.toBeCalled();
expect(res.prependOnceListener).not.toBeCalled();
expect(res.eventNames).not.toBeCalled();
});
test('clearMockRes clears all mocks', () => {
const { res, next, clearMockRes } = (0, response_2.default)();
// call all of the mock functions
next();
(0, response_1.callAllFunctions)(res);
// ensure they all report as being called
/* express.Response */
expect(next).toBeCalledTimes(1);
expect(res.status).toBeCalledTimes(1);
expect(res.sendStatus).toBeCalledTimes(1);
expect(res.links).toBeCalledTimes(1);
expect(res.send).toBeCalledTimes(1);
expect(res.json).toBeCalledTimes(1);
expect(res.jsonp).toBeCalledTimes(1);
expect(res.sendFile).toBeCalledTimes(1);
expect(res.download).toBeCalledTimes(1);
expect(res.contentType).toBeCalledTimes(1);
expect(res.type).toBeCalledTimes(1);
expect(res.format).toBeCalledTimes(1);
expect(res.attachment).toBeCalledTimes(1);
expect(res.set).toBeCalledTimes(1);
expect(res.header).toBeCalledTimes(1);
expect(res.get).toBeCalledTimes(1);
expect(res.clearCookie).toBeCalledTimes(1);
expect(res.cookie).toBeCalledTimes(1);
expect(res.location).toBeCalledTimes(1);
expect(res.redirect).toBeCalledTimes(1);
expect(res.render).toBeCalledTimes(1);
expect(res.vary).toBeCalledTimes(1);
expect(res.append).toBeCalledTimes(1);
/* http.ServerResponse */
expect(res.assignSocket).toBeCalledTimes(1);
expect(res.detachSocket).toBeCalledTimes(1);
expect(res.writeContinue).toBeCalledTimes(1);
expect(res.writeHead).toBeCalledTimes(1);
expect(res.writeProcessing).toBeCalledTimes(1);
/* http.OutgoingMessage */
expect(res.setTimeout).toBeCalledTimes(1);
expect(res.setHeader).toBeCalledTimes(1);
expect(res.getHeader).toBeCalledTimes(1);
expect(res.getHeaders).toBeCalledTimes(1);
expect(res.getHeaderNames).toBeCalledTimes(1);
expect(res.hasHeader).toBeCalledTimes(1);
expect(res.removeHeader).toBeCalledTimes(1);
expect(res.addTrailers).toBeCalledTimes(1);
expect(res.flushHeaders).toBeCalledTimes(1);
/* stream.Writable */
expect(res._write).toBeCalledTimes(1);
expect(res._writev).toBeCalledTimes(1);
expect(res._destroy).toBeCalledTimes(1);
expect(res._final).toBeCalledTimes(1);
expect(res.write).toBeCalledTimes(1);
expect(res.setDefaultEncoding).toBeCalledTimes(1);
expect(res.end).toBeCalledTimes(1);
expect(res.cork).toBeCalledTimes(1);
expect(res.uncork).toBeCalledTimes(1);
expect(res.destroy).toBeCalledTimes(1);
expect(res.addListener).toBeCalledTimes(1);
expect(res.emit).toBeCalledTimes(1);
expect(res.on).toBeCalledTimes(1);
expect(res.once).toBeCalledTimes(1);
expect(res.prependListener).toBeCalledTimes(1);
expect(res.prependOnceListener).toBeCalledTimes(1);
expect(res.removeListener).toBeCalledTimes(1);
/* event.EventEmitter */
expect(res.addListener).toBeCalledTimes(1);
expect(res.on).toBeCalledTimes(1);
expect(res.once).toBeCalledTimes(1);
expect(res.removeListener).toBeCalledTimes(1);
expect(res.off).toBeCalledTimes(1);
expect(res.removeAllListeners).toBeCalledTimes(1);
expect(res.setMaxListeners).toBeCalledTimes(1);
expect(res.getMaxListeners).toBeCalledTimes(1);
expect(res.listeners).toBeCalledTimes(1);
expect(res.rawListeners).toBeCalledTimes(1);
expect(res.emit).toBeCalledTimes(1);
expect(res.listenerCount).toBeCalledTimes(1);
expect(res.prependListener).toBeCalledTimes(1);
expect(res.prependOnceListener).toBeCalledTimes(1);
expect(res.eventNames).toBeCalledTimes(1);
// clear the mock
clearMockRes();
// ensure they all have been cleared
/* express.Response */
expect(next).not.toBeCalled();
expect(next).not.toBeCalled();
expect(res.status).not.toBeCalled();
expect(res.sendStatus).not.toBeCalled();
expect(res.links).not.toBeCalled();
expect(res.send).not.toBeCalled();
expect(res.json).not.toBeCalled();
expect(res.jsonp).not.toBeCalled();
expect(res.sendFile).not.toBeCalled();
expect(res.download).not.toBeCalled();
expect(res.contentType).not.toBeCalled();
expect(res.type).not.toBeCalled();
expect(res.format).not.toBeCalled();
expect(res.attachment).not.toBeCalled();
expect(res.set).not.toBeCalled();
expect(res.header).not.toBeCalled();
expect(res.get).not.toBeCalled();
expect(res.clearCookie).not.toBeCalled();
expect(res.cookie).not.toBeCalled();
expect(res.location).not.toBeCalled();
expect(res.redirect).not.toBeCalled();
expect(res.render).not.toBeCalled();
expect(res.vary).not.toBeCalled();
expect(res.append).not.toBeCalled();
/* http.ServerResponse */
expect(res.assignSocket).not.toBeCalled();
expect(res.detachSocket).not.toBeCalled();
expect(res.writeContinue).not.toBeCalled();
expect(res.writeHead).not.toBeCalled();
expect(res.writeProcessing).not.toBeCalled();
/* http.OutgoingMessage */
expect(res.setTimeout).not.toBeCalled();
expect(res.setHeader).not.toBeCalled();
expect(res.getHeader).not.toBeCalled();
expect(res.getHeaders).not.toBeCalled();
expect(res.getHeaderNames).not.toBeCalled();
expect(res.hasHeader).not.toBeCalled();
expect(res.removeHeader).not.toBeCalled();
expect(res.addTrailers).not.toBeCalled();
expect(res.flushHeaders).not.toBeCalled();
/* stream.Writable */
expect(res._write).not.toBeCalled();
expect(res._writev).not.toBeCalled();
expect(res._destroy).not.toBeCalled();
expect(res._final).not.toBeCalled();
expect(res.write).not.toBeCalled();
expect(res.setDefaultEncoding).not.toBeCalled();
expect(res.end).not.toBeCalled();
expect(res.cork).not.toBeCalled();
expect(res.uncork).not.toBeCalled();
expect(res.destroy).not.toBeCalled();
expect(res.addListener).not.toBeCalled();
expect(res.emit).not.toBeCalled();
expect(res.on).not.toBeCalled();
expect(res.once).not.toBeCalled();
expect(res.prependListener).not.toBeCalled();
expect(res.prependOnceListener).not.toBeCalled();
expect(res.removeListener).not.toBeCalled();
/* event.EventEmitter */
expect(res.addListener).not.toBeCalled();
expect(res.on).not.toBeCalled();
expect(res.once).not.toBeCalled();
expect(res.removeListener).not.toBeCalled();
expect(res.off).not.toBeCalled();
expect(res.removeAllListeners).not.toBeCalled();
expect(res.setMaxListeners).not.toBeCalled();
expect(res.getMaxListeners).not.toBeCalled();
expect(res.listeners).not.toBeCalled();
expect(res.rawListeners).not.toBeCalled();
expect(res.emit).not.toBeCalled();
expect(res.listenerCount).not.toBeCalled();
expect(res.prependListener).not.toBeCalled();
expect(res.prependOnceListener).not.toBeCalled();
expect(res.eventNames).not.toBeCalled();
});
});
//# sourceMappingURL=response.test.js.map
;