| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- const sinon = require('sinon')
- const chai = require('chai')
- const { expect } = chai
- const SandboxedModule = require('sandboxed-module')
- const modulePath = '../../../app/js/PersistorManager.js'
- describe('PersistorManager', function() {
- let PersistorManager,
- FSPersistorManager,
- S3PersistorManager,
- settings,
- requires
- beforeEach(function() {
- FSPersistorManager = {
- wrappedMethod: sinon.stub().returns('FSPersistorManager')
- }
- S3PersistorManager = {
- wrappedMethod: sinon.stub().returns('S3PersistorManager')
- }
- settings = {
- filestore: {}
- }
- requires = {
- './S3PersistorManager': S3PersistorManager,
- './FSPersistorManager': FSPersistorManager,
- 'settings-sharelatex': settings,
- 'logger-sharelatex': {
- log() {},
- err() {}
- }
- }
- })
- it('should implement the S3 wrapped method when S3 is configured', function() {
- settings.filestore.backend = 's3'
- PersistorManager = SandboxedModule.require(modulePath, { requires })
- expect(PersistorManager).to.respondTo('wrappedMethod')
- expect(PersistorManager.wrappedMethod()).to.equal('S3PersistorManager')
- })
- it('should implement the FS wrapped method when FS is configured', function() {
- settings.filestore.backend = 'fs'
- PersistorManager = SandboxedModule.require(modulePath, { requires })
- expect(PersistorManager).to.respondTo('wrappedMethod')
- expect(PersistorManager.wrappedMethod()).to.equal('FSPersistorManager')
- })
- it('should throw an error when the backend is not configured', function() {
- try {
- SandboxedModule.require(modulePath, { requires })
- } catch (err) {
- expect(err.message).to.equal('no backend specified - config incomplete')
- return
- }
- expect('should have caught an error').not.to.exist
- })
- it('should throw an error when the backend is unknown', function() {
- settings.filestore.backend = 'magic'
- try {
- SandboxedModule.require(modulePath, { requires })
- } catch (err) {
- expect(err.message).to.equal('unknown filestore backend: magic')
- return
- }
- expect('should have caught an error').not.to.exist
- })
- })
|