{"id":16442,"library":"mock-express-response","title":"Mock Express Response","description":"Node.js library designed to facilitate unit and integration testing of Express.js middleware and route handlers by providing a mock HTTP response object. It emulates the standard Express `response` API, including methods like `json()`, `send()`, and `render()`, allowing developers to inspect the output and behavior of their Express-dependent code without launching a full HTTP server. The package, currently at version 0.3.0, appears to be unmaintained; its last update was in 2017 and the copyright dates to 2015. It is built upon `mock-res` for core HTTP response stream mocking and is intended to be used in conjunction with `mock-express-request` for a complete request/response mock pair. A key differentiator is its direct mirroring of the Express `res` object's internal state, allowing retrieval of rendered data via methods like `_getJSON()` and `_getString()`, which simplifies assertion writing in tests. Due to its age, compatibility with modern Express.js versions (v5+) and native ESM environments is not guaranteed.","status":"abandoned","version":"0.3.0","language":"javascript","source_language":"en","source_url":"https://github.com/lykmapipo/mock-express-response","tags":["javascript","express","connect","mock","stab","unit","test","spec","specification"],"install":[{"cmd":"npm install mock-express-response","lang":"bash","label":"npm"},{"cmd":"yarn add mock-express-response","lang":"bash","label":"yarn"},{"cmd":"pnpm add mock-express-response","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core dependency providing the base mocking functionality for HTTP response streams.","package":"mock-res","optional":false},{"reason":"Peer dependency; defines the API shape that this mock object emulates. Compatibility is limited to older Express versions (v3 and v4).","package":"express","optional":false}],"imports":[{"note":"This package is a CommonJS module and does not support ES module imports natively. Attempting to use `import` will result in errors.","wrong":"import MockExpressResponse from 'mock-express-response';","symbol":"MockExpressResponse","correct":"const MockExpressResponse = require('mock-express-response');"}],"quickstart":{"code":"const ejs = require('ejs');\nconst MockExpressRequest = require('mock-express-request');\nconst MockExpressResponse = require('mock-express-response');\n\n// Basic usage\nconst response = new MockExpressResponse();\n\n// With options, including a custom render engine and a mock request object\nconst request = new MockExpressRequest({\n  url: '/users/123',\n  method: 'GET'\n});\nconst responseWithOptions = new MockExpressResponse({\n    render: ejs.renderFile, // Use ejs as a template engine example\n    request: request\n});\n\n// Express response methods\nresponseWithOptions.json({ user: { id: 1, active: true } });\nresponseWithOptions.render('user.ejs', { user: { id: 1, name: 'Test User' } });\nresponseWithOptions.send('<p>User details page</p>');\n\n// To obtain the sent json response for testing\nconst jsonResult = responseWithOptions._getJSON();\nconsole.log('JSON Result:', jsonResult);\n\n// To obtain the text/html response for testing\nconst stringResult = responseWithOptions._getString();\nconsole.log('HTML Result:', stringResult);","lang":"javascript","description":"Demonstrates basic instantiation and usage of `MockExpressResponse` with common Express methods (`json`, `render`, `send`), and how to retrieve the mocked output for assertions."},"warnings":[{"fix":"For new projects or those using modern Express/Node.js, consider custom mocks or more actively maintained alternatives. If used, pin the `express` peer dependency to a compatible version (v3 or v4) in your `package.json`.","message":"The package is effectively abandoned, with its last release (v0.3.0) in 2017 and copyright dating to 2015. It is unlikely to receive updates for bug fixes, security vulnerabilities, or compatibility with newer Node.js versions or Express.js APIs (e.g., Express v5+). Its `peerDependency` on `express@^3.0.0 || ^4.0.0` explicitly indicates lack of support for Express v5 and beyond.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Ensure your project or test files are configured for CommonJS, or use dynamic `import()` for ESM projects: `const MockExpressResponse = await import('mock-express-response');` (though this might still encounter issues with the CJS module structure).","message":"This package strictly supports CommonJS (CJS) imports and does not provide native ES module (ESM) compatibility. Attempting to use `import MockExpressResponse from 'mock-express-response'` in an ESM context will fail.","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"last_verified":"2026-04-22T00:00:00.000Z","next_check":"2026-07-21T00:00:00.000Z","problems":[{"fix":"Ensure you are using `const MockExpressResponse = require('mock-express-response');` in a CommonJS file.","cause":"Attempting to use `MockExpressResponse` as a class in an ES module context when it's a CommonJS export, or incorrect `require` usage.","error":"TypeError: MockExpressResponse is not a constructor"},{"fix":"Verify that your `express` peer dependency version is compatible with this library (Express v3 or v4). If using a newer Express version, this package is likely incompatible; consider manually mocking the `res` object or using a different testing approach.","cause":"The underlying Express `res` methods are not correctly mocked or inherited due to a version mismatch with the expected Express API, especially if using Express v5 or newer.","error":"TypeError: response.json is not a function"}],"ecosystem":"npm"}