setup.js 978 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const chai = require('chai')
  2. const SandboxedModule = require('sandboxed-module')
  3. const sinon = require('sinon')
  4. const chaiAsPromised = require('chai-as-promised')
  5. const sinonChai = require('sinon-chai')
  6. // Chai configuration
  7. chai.should()
  8. chai.use(chaiAsPromised)
  9. chai.use(sinonChai)
  10. // Global stubs
  11. const sandbox = sinon.createSandbox()
  12. const stubs = {
  13. logger: {
  14. debug: sandbox.stub(),
  15. log: sandbox.stub(),
  16. info: sandbox.stub(),
  17. warn: sandbox.stub(),
  18. err: sandbox.stub(),
  19. error: sandbox.stub(),
  20. },
  21. }
  22. // SandboxedModule configuration
  23. SandboxedModule.configure({
  24. requires: {
  25. '@overleaf/logger': stubs.logger,
  26. },
  27. globals: { Buffer, JSON, console, process },
  28. sourceTransformers: {
  29. removeNodePrefix: function (source) {
  30. return source.replace(/require\(['"]node:/g, "require('")
  31. },
  32. },
  33. })
  34. // Mocha hooks
  35. exports.mochaHooks = {
  36. beforeEach() {
  37. this.logger = stubs.logger
  38. },
  39. afterEach() {
  40. sandbox.reset()
  41. },
  42. }