/* eslint-disable no-return-assign, no-unused-vars, */ // TODO: This file was created by bulk-decaffeinate. // Fix any style issues and re-enable lint. /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ const logger = require('logger-sharelatex') const { assert } = require('chai') const sinon = require('sinon') const chai = require('chai') const should = chai.should() const { expect } = chai const modulePath = '../../../app/js/PersistorManager.js' const SandboxedModule = require('sandboxed-module') describe('PersistorManagerTests', function() { beforeEach(function() { return (this.S3PersistorManager = { getFileStream: sinon.stub(), checkIfFileExists: sinon.stub(), deleteFile: sinon.stub(), deleteDirectory: sinon.stub(), sendStream: sinon.stub(), insertFile: sinon.stub() }) }) describe('test s3 mixin', function() { beforeEach(function() { this.settings = { filestore: { backend: 's3' } } this.requires = { './S3PersistorManager': this.S3PersistorManager, 'settings-sharelatex': this.settings, 'logger-sharelatex': { log() {}, err() {} } } return (this.PersistorManager = SandboxedModule.require(modulePath, { requires: this.requires })) }) it('should load getFileStream', function(done) { this.PersistorManager.should.respondTo('getFileStream') this.PersistorManager.getFileStream() this.S3PersistorManager.getFileStream.calledOnce.should.equal(true) return done() }) it('should load checkIfFileExists', function(done) { this.PersistorManager.checkIfFileExists() this.S3PersistorManager.checkIfFileExists.calledOnce.should.equal(true) return done() }) it('should load deleteFile', function(done) { this.PersistorManager.deleteFile() this.S3PersistorManager.deleteFile.calledOnce.should.equal(true) return done() }) it('should load deleteDirectory', function(done) { this.PersistorManager.deleteDirectory() this.S3PersistorManager.deleteDirectory.calledOnce.should.equal(true) return done() }) it('should load sendStream', function(done) { this.PersistorManager.sendStream() this.S3PersistorManager.sendStream.calledOnce.should.equal(true) return done() }) return it('should load insertFile', function(done) { this.PersistorManager.insertFile() this.S3PersistorManager.insertFile.calledOnce.should.equal(true) return done() }) }) describe('test unspecified mixins', () => it('should load s3 when no wrapper specified', function(done) { this.settings = { filestore: {} } this.requires = { './S3PersistorManager': this.S3PersistorManager, 'settings-sharelatex': this.settings, 'logger-sharelatex': { log() {}, err() {} } } this.PersistorManager = SandboxedModule.require(modulePath, { requires: this.requires }) this.PersistorManager.should.respondTo('getFileStream') this.PersistorManager.getFileStream() this.S3PersistorManager.getFileStream.calledOnce.should.equal(true) return done() })) return describe('test invalid mixins', () => it('should not load an invalid wrapper', function(done) { this.settings = { filestore: { backend: 'magic' } } this.requires = { './S3PersistorManager': this.S3PersistorManager, 'settings-sharelatex': this.settings, 'logger-sharelatex': { log() {}, err() {} } } this.fsWrapper = null try { this.PersistorManager = SandboxedModule.require(modulePath, { requires: this.requires }) } catch (error) { assert.equal('Unknown filestore backend: magic', error.message) } assert.isNull(this.fsWrapper) return done() })) })