--- /dev/null
+'use strict';
+const { StubDatabase, StubLogger } = require('../index');
+const sinon = require('sinon');
+const assert = require('node:assert');
+
+class App {
+ constructor(logger, db) {
+ this.logger = logger;
+ this.db = db;
+ }
+ doAThing() {
+ this.db.valueGet();
+ this.logger.error('doAThing', 'oh no');
+ }
+}
+
+class AppDB extends StubDatabase {
+ constructor() {
+ super(sinon);
+ }
+ get _stubFns() {
+ return [
+ ...super._stubFns,
+ 'valueGet',
+ 'valueSet',
+ ];
+ }
+}
+
+const logger = new StubLogger(sinon);
+const db = new AppDB();
+
+describe('App Test', function () {
+ beforeEach(function () {
+ db._reset();
+ logger._reset();
+ });
+ it('uses stubs', function () {
+ const app = new App(logger, db);
+ app.doAThing();
+ assert(logger.error.called);
+ assert(db.valueGet.called);
+ });
+});