breaking: bring your own sinon instead of bundling, to resolve leaks when versions...
[squeep-test-helper] / README.md
1 # Test Helper
2
3 Helpers for writing tests which use vvarious Squeep packages.
4
5 Provides stub-builders for:
6
7 - [Squeep Structured Logger](https://www.npmjs.com/package/@squeep/logger-json-console)
8 - [Squeep Database Abstractor](https://git.squeep.com/?p=squeep-db-helper;a=tree)
9
10 ## Usage
11
12 ```javascript
13 const { StubDatabase, StubLogger } = require('@squeep/test-helper');
14 const assert = require('node:assert);
15 const sinon = require('sinon');
16
17 class AppDB extends StubDatabase {
18 constructor() {
19 super(sinon);
20 }
21 get _stubFns() {
22 return [
23 ...super._stubFns,
24 // Add database interface functions.
25 'valueGet',
26 'valueSet',
27 ];
28 }
29 }
30
31 const logger = new StubLogger(sinon);
32 const db = new AppDB();
33
34 describe('App Test', function () {
35 beforeEach(function () {
36 db._reset();
37 logger._reset();
38 });
39 it('uses stubs', function () {
40 const app = new App(logger, db);
41 app.doAThing();
42 assert(logger.error.called);
43 assert(db.valueGet.called);
44 });
45 });
46 ```