| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- const chai = require('chai')
- const chaiAsPromised = require('chai-as-promised')
- const sinonChai = require('sinon-chai')
- const SandboxedModule = require('sandboxed-module')
- const sinon = require('sinon')
- // ensure every ObjectId has the id string as a property for correct comparisons
- require('mongodb-legacy').ObjectId.cacheHexString = true
- // Chai configuration
- chai.should()
- chai.use(chaiAsPromised)
- // Load sinon-chai assertions so expect(stubFn).to.have.been.calledWith('abc')
- // has a nicer failure messages
- chai.use(sinonChai)
- // Global stubs
- const sandbox = sinon.createSandbox()
- const stubs = {
- logger: {
- debug: sandbox.stub(),
- log: sandbox.stub(),
- warn: sandbox.stub(),
- err: sandbox.stub(),
- error: sandbox.stub(),
- },
- }
- // SandboxedModule configuration
- SandboxedModule.configure({
- requires: {
- '@overleaf/logger': stubs.logger,
- 'mongodb-legacy': require('mongodb-legacy'), // for ObjectId comparisons
- },
- globals: { Buffer, JSON, Math, console, process },
- })
- // Mocha hooks
- exports.mochaHooks = {
- beforeEach() {
- this.logger = stubs.logger
- },
- afterEach() {
- sandbox.reset()
- },
- }
|