| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- const chai = require('chai')
- const sinon = require('sinon')
- const sinonChai = require('sinon-chai')
- const chaiAsPromised = require('chai-as-promised')
- const SandboxedModule = require('sandboxed-module')
- const timersPromises = require('timers/promises')
- // ensure every ObjectId has the id string as a property for correct comparisons
- require('mongodb-legacy').ObjectId.cacheHexString = true
- process.env.BACKEND = 'gcs'
- // Chai configuration
- chai.should()
- chai.use(sinonChai)
- chai.use(chaiAsPromised)
- // Global stubs
- const sandbox = sinon.createSandbox()
- const stubs = {
- logger: {
- debug: sandbox.stub(),
- log: sandbox.stub(),
- info: sandbox.stub(),
- warn: sandbox.stub(),
- err: sandbox.stub(),
- error: sandbox.stub(),
- fatal: sandbox.stub(),
- },
- }
- // SandboxedModule configuration
- SandboxedModule.configure({
- requires: {
- '@overleaf/logger': stubs.logger,
- 'timers/promises': timersPromises,
- 'mongodb-legacy': require('mongodb-legacy'),
- bson: require('bson'),
- },
- globals: { Buffer, JSON, Math, console, process },
- })
- exports.mochaHooks = {
- beforeEach() {
- this.logger = stubs.logger
- },
- afterEach() {
- sandbox.reset()
- },
- }
|