readme-metric-reporter-nestjs
Version:
Report Nest.js API usage metrics to README.com
42 lines • 1.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const testing_1 = require("@nestjs/testing");
const readme_metric_reporter_1 = require("readme-metric-reporter");
const request = require("supertest");
const metric_reporter_module_1 = require("./metric-reporter.module");
jest.mock('os', () => ({
...jest.requireActual('os'),
type: jest.fn().mockReturnValue('darwin'),
release: jest.fn().mockReturnValue('10.0.0'),
}));
jest.useFakeTimers();
jest.setSystemTime(new Date('2022-01-01'));
describe('MetricReporterModule', () => {
let app;
beforeAll(async () => {
const moduleRef = await testing_1.Test.createTestingModule({
imports: [
metric_reporter_module_1.MetricReporterModule.register({
reporter: new readme_metric_reporter_1.MetricReporter('apiKey'),
collector: {
collect: (_req, _res, metric) => ({ ...metric, _id: '1' }),
},
routes: ['*'],
excludedRoutes: ['/health'],
}),
],
}).compile();
app = moduleRef.createNestApplication();
await app.listen(50000);
});
afterAll(async () => {
await app.close();
});
it('tracks a request', async () => {
const report = jest.spyOn(readme_metric_reporter_1.MetricReporter.prototype, 'report');
report.mockImplementation(async () => { });
await request(app.getHttpServer()).post('/404').send({ ping: 'text' });
expect(report.mock.calls[0]?.[0]).toMatchSnapshot();
});
});
//# sourceMappingURL=metric-reporter.module.test.js.map