Files
overleaf-cep/services/web/test/unit/vitest_bootstrap.mjs
Andrew Rumble 394c60f2cf Merge pull request #29659 from overleaf/revert-29656-revert-29521-ar-models-es-conversion
Revert "Revert "[web] Convert models and self-referential test files to ESM ""

GitOrigin-RevId: f64000ae31d298b075a8722dfc51f294c71bc021
2025-11-18 09:04:56 +00:00

60 lines
1.3 KiB
JavaScript

import { chai, vi } from 'vitest'
import './common_bootstrap.js'
import sinon from 'sinon'
import logger from '@overleaf/logger'
import sinonChai from 'sinon-chai'
import chaiAsPromised from 'chai-as-promised'
import mongoose from 'mongoose'
/*
* Chai configuration
*/
// add chai.should()
chai.should()
// Load sinon-chai assertions so expect(stubFn).to.have.been.calledWith('abc')
// has a nicer failure messages
chai.use(sinonChai)
// Load promise support for chai
chai.use(chaiAsPromised)
// Do not truncate assertion errors
chai.config.truncateThreshold = 0
vi.mock('@overleaf/logger', async () => {
return {
default: {
debug: vi.fn(),
info: vi.fn(),
log: vi.fn(),
warn: vi.fn(),
err: vi.fn(),
error: vi.fn(),
fatal: vi.fn(),
},
}
})
beforeEach(ctx => {
// This function is a utility to duplicate the behaviour of passing `done` in place of `next` in an express route handler.
ctx.rejectOnError = reject => {
return err => {
if (err) {
reject(err)
}
}
}
ctx.logger = logger
})
afterEach(() => {
vi.restoreAllMocks()
vi.resetModules()
sinon.restore()
const modelNames = mongoose.modelNames()
modelNames.forEach(name => {
delete mongoose.connection.models[name]
})
})