Skip to content

Provides a way to collect API endpoint test coverage in your API tests.

License

Notifications You must be signed in to change notification settings

tomastauer/endpoint-coverage

Repository files navigation

endpoint-coverage

Provides a way to collect API endpoint test coverage in your API tests.

Installation

Via NPM

$ npm install endpoint-coverage --save-dev

Usage

There is one main function exported in the module, coverageMiddleware.

coverageMiddleware

Express.js middleware that collects all HTTP requests made against the server. Scans all request handlers registered in the application and pre-attaches middleware checking whether the given handler was called.

Registers endpoint (GET /collectCoverage) for collecting the coverage.

Middleware has to be registered only in the test environment.

interface CoverageResult {
    coveredRoutes: Record<string, string[]>;
    notCoveredRoutes: string[];
}

Example

server.ts

import express from 'express';
import { coverageMiddleware } from 'endpoint-coverage';

const app = express();
const port = 12345;

if(isTestEnv()) {
	app.use(coverageMiddleware());
}

app.get('/path/:param', () => {...});
app.post('/anotherPath', () => {...});

return app.listen(port);

afterTest.ts

import { CoverageResult } from 'endpoint-coverage';

afterAll(async () => {
	const coverageResult: CoverageResult = await fetch('/coverageResult');
	expect(coverageResult.notCoveredRoutes).toBeEmpty();
});

About

Provides a way to collect API endpoint test coverage in your API tests.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published