Registry / testing / should-http

should-http

JSON →
library0.1.1jsnpmunverified

should-http extends the `should.js` assertion library with specific methods for validating Node.js HTTP `IncomingMessage` objects. Primarily used for testing HTTP requests and responses, it enables fluent assertions on status codes, headers (e.g., `Content-Length`), and content types (e.g., `application/json`, `text/html`). Currently at version 0.1.1, this package appears to be abandoned, with no active development or maintenance. Its approach of patching the global `should` instance, rather than exporting specific utilities, ties it closely to older `should.js` usage patterns and makes it less suitable for modern module development (ESM) where global side-effects are generally avoided. It focuses specifically on the standard Node.js `http` module's request and response objects, distinguishing it from broader HTTP client assertion libraries.

npm install should-http
INSTALL
IMPORT
SIG · SHOULD-HTTP
S
should-http
testingjavascriptv0.1.1
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

* (side-effect import)
require('should-http');
import shouldHttp from 'should-http';
This package is a CommonJS module designed to be `require`d for its side effects, patching the global `should` instance. It does not export specific symbols for named or default imports. While technically `import 'should-http';` might work in ESM, the package is likely not tested or intended for modern ESM environments and could have compatibility issues with newer Node.js versions.

Demonstrates how to initialize `should-http` and use its core assertions (status, header, json, html) on a mock HTTP response object.

const should = require('should'); require('should-http'); // Simulate an HTTP response object const mockResponse = { statusCode: 200, headers: { 'content-type': 'application/json; charset=utf-8', 'content-length': '123' }, body: '{ "key": "value" }' }; // Assertions using should-http try { mockResponse.should.have.status(200); console.log('✔ Status code is 200'); mockResponse.should.have.header('content-length'); console.log('✔ Has content-length header'); mockResponse.should.have.header('Content-Length', '123'); console.log('✔ Content-Length header matches value'); mockResponse.should.be.json(); console.log('✔ Content-Type is application/json'); // Example of a failing assertion (uncomment to see it fail) // mockResponse.should.have.status(404); } catch (e) { console.error('Assertion failed:', e.message); } // Example for .html (if content-type were different) const htmlResponse = { statusCode: 200, headers: { 'content-type': 'text/html; charset=utf-8' } }; try { htmlResponse.should.be.html(); console.log('✔ Content-Type is text/html'); } catch (e) { console.error('HTML assertion failed:', e.message); }
Debug
Known issues
breakingThis package is largely unmaintained and may not be compatible with newer versions of Node.js or `should.js` beyond the specified peer dependency (>= 4.x). Using older, unmaintained packages can introduce security vulnerabilities or unexpected behavior in modern environments.
fix
Consider migrating to a more actively maintained assertion library for HTTP testing, such as `chai-http` with `chai` or `supertest`.
affects: <=0.1.1
gotchashould-http works by patching the global `should` instance (and by extension, potentially `Object.prototype` depending on `should.js` configuration). This can lead to global namespace pollution and conflicts with other libraries or unexpected side effects, which is a deprecated pattern in modern JavaScript development.
fix
Be aware that including `should-http` modifies global objects. If you encounter unexpected properties or assertion failures in unrelated tests, this global patching is a likely cause. Encapsulate test environments or use `should.js`'s non-prototypal usage if possible.
affects: *
gotchaThis package is designed for CommonJS (`require`). While Node.js has robust interoperability, using a CJS module that relies on global side-effects within an ESM project might introduce subtle issues or require specific configuration (e.g., `--experimental-json-modules` or using bundlers).
fix
For ESM projects, consider assertion libraries that are natively designed for ESM or offer explicit ESM support. If you must use `should-http`, ensure your build process or Node.js runtime environment handles CJS interoperability correctly.
affects: *
Errors
Common errors & fixes
Error: should.js: assertion for 'status' was not added
The `should-http` module was required before `should.js` was initialized, or `should.js` itself was not required/available in the environment.
fix
Ensure `require('should');` is called *before* `require('should-http');` to guarantee the `should` instance is available for patching.
TypeError: Cannot read properties of undefined (reading 'should')
The `should` library was not correctly loaded or applied, meaning `Object.prototype.should` (or `should(obj)`) is not available, and thus `res.should` fails.
fix
Verify that `should` is properly installed (`npm install should`) and required at the top of your test file, as per `should.js`'s standard usage. If using a test runner, ensure `should` is loaded correctly (e.g., via Mocha's `-r` flag).
TypeError: 'res.should.be.json' is not a function
The assertion `json` is a method and requires parentheses `()` to be called, even though it takes no arguments.
fix
Change `res.should.be.json` to `res.should.be.json()` to correctly invoke the assertion method. The same applies to `.html()`.
Upgrade
Version history
0.1.1latest on npm
Audit
Dependencies
shouldrequiredPeer dependency, should-http patches `should.js` with additional HTTP assertions. Requires should.js version 4.x or higher.
Agent activity
8 hits · last 30 days
node
6
OpenAI (training)
1
Resources
should-http — npm install should-http · libregistry