mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-12 13:13:45 +01:00
Add a global test setup file
Configure chai and SandboxedModule globally instead of in every test file. Also add globals that are required for SandboxedModule to work in Node 12.
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"require": "test/setup.js"
|
||||
}
|
||||
@@ -14,9 +14,7 @@
|
||||
*/
|
||||
process.env.BACKEND = 'gcs'
|
||||
const Settings = require('settings-sharelatex')
|
||||
const chai = require('chai')
|
||||
const { expect } = chai
|
||||
const should = chai.should()
|
||||
const { expect } = require('chai')
|
||||
const { db, ObjectId } = require('../../../app/js/mongodb')
|
||||
const async = require('async')
|
||||
const DocstoreApp = require('./helpers/DocstoreApp')
|
||||
@@ -96,8 +94,8 @@ describe('Archiving', function () {
|
||||
((doc) => {
|
||||
return (callback) => {
|
||||
return db.docs.findOne({ _id: doc._id }, (error, doc) => {
|
||||
should.not.exist(doc.lines)
|
||||
should.not.exist(doc.ranges)
|
||||
expect(doc.lines).not.to.exist
|
||||
expect(doc.ranges).not.to.exist
|
||||
doc.inS3.should.equal(true)
|
||||
return callback()
|
||||
})
|
||||
@@ -155,7 +153,7 @@ describe('Archiving', function () {
|
||||
return db.docs.findOne({ _id: doc._id }, (error, doc) => {
|
||||
doc.lines.should.deep.equal(this.docs[i].lines)
|
||||
doc.ranges.should.deep.equal(this.docs[i].ranges)
|
||||
should.not.exist(doc.inS3)
|
||||
expect(doc.inS3).not.to.exist
|
||||
return callback()
|
||||
})
|
||||
}
|
||||
@@ -218,8 +216,8 @@ describe('Archiving', function () {
|
||||
if (error != null) {
|
||||
throw error
|
||||
}
|
||||
should.not.exist(doc.lines)
|
||||
should.not.exist(doc.ranges)
|
||||
expect(doc.lines).not.to.exist
|
||||
expect(doc.ranges).not.to.exist
|
||||
doc.inS3.should.equal(true)
|
||||
doc.deleted.should.equal(true)
|
||||
return done()
|
||||
@@ -267,7 +265,7 @@ describe('Archiving', function () {
|
||||
}
|
||||
doc.lines.should.deep.equal(this.doc.lines)
|
||||
doc.ranges.should.deep.equal(this.doc.ranges)
|
||||
should.not.exist(doc.inS3)
|
||||
expect(doc.inS3).not.to.exist
|
||||
doc.deleted.should.equal(true)
|
||||
return done()
|
||||
})
|
||||
@@ -365,8 +363,8 @@ describe('Archiving', function () {
|
||||
if (error) {
|
||||
return done(error)
|
||||
}
|
||||
should.not.exist(doc.lines)
|
||||
should.not.exist(doc.ranges)
|
||||
expect(doc.lines).not.to.exist
|
||||
expect(doc.ranges).not.to.exist
|
||||
doc.inS3.should.equal(true)
|
||||
done()
|
||||
})
|
||||
@@ -433,8 +431,8 @@ describe('Archiving', function () {
|
||||
if (error != null) {
|
||||
throw error
|
||||
}
|
||||
should.not.exist(doc.lines)
|
||||
should.not.exist(doc.ranges)
|
||||
expect(doc.lines).not.to.exist
|
||||
expect(doc.ranges).not.to.exist
|
||||
doc.inS3.should.equal(true)
|
||||
return done()
|
||||
})
|
||||
@@ -476,7 +474,7 @@ describe('Archiving', function () {
|
||||
}
|
||||
doc.lines.should.deep.equal(this.doc.lines)
|
||||
doc.ranges.should.deep.equal(this.doc.ranges)
|
||||
should.not.exist(doc.inS3)
|
||||
expect(doc.inS3).not.to.exist
|
||||
return done()
|
||||
})
|
||||
})
|
||||
@@ -907,8 +905,8 @@ describe('Archiving', function () {
|
||||
if (error != null) {
|
||||
throw error
|
||||
}
|
||||
should.not.exist(doc.lines)
|
||||
should.not.exist(doc.ranges)
|
||||
expect(doc.lines).not.to.exist
|
||||
expect(doc.ranges).not.to.exist
|
||||
doc.inS3.should.equal(true)
|
||||
return done()
|
||||
})
|
||||
@@ -950,7 +948,7 @@ describe('Archiving', function () {
|
||||
}
|
||||
doc.lines.should.deep.equal(this.doc.lines)
|
||||
doc.ranges.should.deep.equal(this.doc.ranges)
|
||||
should.not.exist(doc.inS3)
|
||||
expect(doc.inS3).not.to.exist
|
||||
return done()
|
||||
})
|
||||
})
|
||||
@@ -1026,8 +1024,8 @@ describe('Archiving', function () {
|
||||
if (error != null) {
|
||||
throw error
|
||||
}
|
||||
should.not.exist(doc.lines)
|
||||
should.not.exist(doc.ranges)
|
||||
expect(doc.lines).not.to.exist
|
||||
expect(doc.ranges).not.to.exist
|
||||
doc.inS3.should.equal(true)
|
||||
return done()
|
||||
})
|
||||
@@ -1070,7 +1068,7 @@ describe('Archiving', function () {
|
||||
}
|
||||
doc.lines.should.deep.equal(this.doc.lines)
|
||||
doc.ranges.should.deep.equal(this.doc.ranges)
|
||||
should.not.exist(doc.inS3)
|
||||
expect(doc.inS3).not.to.exist
|
||||
return done()
|
||||
})
|
||||
})
|
||||
@@ -1123,8 +1121,8 @@ describe('Archiving', function () {
|
||||
if (error != null) {
|
||||
throw error
|
||||
}
|
||||
should.not.exist(doc.lines)
|
||||
should.not.exist(doc.ranges)
|
||||
expect(doc.lines).not.to.exist
|
||||
expect(doc.ranges).not.to.exist
|
||||
doc.inS3.should.equal(true)
|
||||
return done()
|
||||
})
|
||||
@@ -1166,7 +1164,7 @@ describe('Archiving', function () {
|
||||
}
|
||||
doc.lines.should.deep.equal(this.doc.lines)
|
||||
doc.ranges.should.deep.equal(this.doc.ranges)
|
||||
should.not.exist(doc.inS3)
|
||||
expect(doc.inS3).not.to.exist
|
||||
return done()
|
||||
})
|
||||
})
|
||||
@@ -1220,7 +1218,7 @@ describe('Archiving', function () {
|
||||
throw error
|
||||
}
|
||||
doc.lines.should.deep.equal(this.doc.lines)
|
||||
should.not.exist(doc.inS3)
|
||||
expect(doc.inS3).not.to.exist
|
||||
return done()
|
||||
})
|
||||
})
|
||||
|
||||
@@ -11,10 +11,8 @@
|
||||
* DS207: Consider shorter variations of null checks
|
||||
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
||||
*/
|
||||
const chai = require('chai')
|
||||
chai.should()
|
||||
const { db, ObjectId } = require('../../../app/js/mongodb')
|
||||
const { expect } = chai
|
||||
const { expect } = require('chai')
|
||||
const DocstoreApp = require('./helpers/DocstoreApp')
|
||||
const Errors = require('../../../app/js/Errors')
|
||||
const Settings = require('settings-sharelatex')
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
||||
*/
|
||||
const sinon = require('sinon')
|
||||
const chai = require('chai')
|
||||
chai.should()
|
||||
const { ObjectId } = require('mongodb')
|
||||
const async = require('async')
|
||||
const DocstoreApp = require('./helpers/DocstoreApp')
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
||||
*/
|
||||
const sinon = require('sinon')
|
||||
const chai = require('chai')
|
||||
chai.should()
|
||||
const { ObjectId } = require('mongodb')
|
||||
const DocstoreApp = require('./helpers/DocstoreApp')
|
||||
|
||||
|
||||
@@ -11,8 +11,6 @@
|
||||
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
||||
*/
|
||||
const sinon = require('sinon')
|
||||
const chai = require('chai')
|
||||
chai.should()
|
||||
const { ObjectId } = require('mongodb')
|
||||
const DocstoreApp = require('./helpers/DocstoreApp')
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
const chai = require('chai')
|
||||
const sinon = require('sinon')
|
||||
const sinonChai = require('sinon-chai')
|
||||
const chaiAsPromised = require('chai-as-promised')
|
||||
const SandboxedModule = require('sandboxed-module')
|
||||
|
||||
// Chai configuration
|
||||
chai.should()
|
||||
chai.use(sinonChai)
|
||||
chai.use(chaiAsPromised)
|
||||
|
||||
// Global stubs
|
||||
const sandbox = sinon.createSandbox()
|
||||
const stubs = {
|
||||
logger: {
|
||||
log: sandbox.stub(),
|
||||
warn: sandbox.stub(),
|
||||
err: sandbox.stub(),
|
||||
error: sandbox.stub(),
|
||||
fatal: sandbox.stub()
|
||||
}
|
||||
}
|
||||
|
||||
// SandboxedModule configuration
|
||||
SandboxedModule.configure({
|
||||
requires: {
|
||||
'logger-sharelatex': stubs.logger
|
||||
},
|
||||
globals: { Buffer, JSON, console, process }
|
||||
})
|
||||
|
||||
exports.mochaHooks = {
|
||||
beforeEach() {
|
||||
this.logger = stubs.logger
|
||||
},
|
||||
|
||||
afterEach() {
|
||||
sandbox.reset()
|
||||
}
|
||||
}
|
||||
@@ -1,21 +1,16 @@
|
||||
const sinon = require('sinon')
|
||||
const chai = require('chai')
|
||||
const { expect } = chai
|
||||
const { expect } = require('chai')
|
||||
const modulePath = '../../../app/js/DocArchiveManager.js'
|
||||
const SandboxedModule = require('sandboxed-module')
|
||||
const { ObjectId } = require('mongodb')
|
||||
const Errors = require('../../../app/js/Errors')
|
||||
|
||||
chai.use(require('chai-as-promised'))
|
||||
chai.use(require('sinon-chai'))
|
||||
|
||||
describe('DocArchiveManager', function () {
|
||||
let DocArchiveManager,
|
||||
PersistorManager,
|
||||
MongoManager,
|
||||
RangeManager,
|
||||
Settings,
|
||||
Logger,
|
||||
Crypto,
|
||||
Streamifier,
|
||||
HashDigest,
|
||||
@@ -39,10 +34,6 @@ describe('DocArchiveManager', function () {
|
||||
bucket: 'wombat'
|
||||
}
|
||||
}
|
||||
Logger = {
|
||||
log: sinon.stub(),
|
||||
err: sinon.stub()
|
||||
}
|
||||
HashDigest = sinon.stub().returns(md5Sum)
|
||||
HashUpdate = sinon.stub().returns({ digest: HashDigest })
|
||||
Crypto = {
|
||||
@@ -141,17 +132,12 @@ describe('DocArchiveManager', function () {
|
||||
DocArchiveManager = SandboxedModule.require(modulePath, {
|
||||
requires: {
|
||||
'settings-sharelatex': Settings,
|
||||
'logger-sharelatex': Logger,
|
||||
crypto: Crypto,
|
||||
streamifier: Streamifier,
|
||||
'./MongoManager': MongoManager,
|
||||
'./RangeManager': RangeManager,
|
||||
'./PersistorManager': PersistorManager,
|
||||
'./Errors': Errors
|
||||
},
|
||||
globals: {
|
||||
console,
|
||||
JSON
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
@@ -14,11 +14,7 @@
|
||||
*/
|
||||
const SandboxedModule = require('sandboxed-module')
|
||||
const sinon = require('sinon')
|
||||
const chai = require('chai')
|
||||
chai.use(require('sinon-chai'))
|
||||
const { assert } = require('chai')
|
||||
chai.should()
|
||||
const { expect } = chai
|
||||
const { assert, expect } = require('chai')
|
||||
const modulePath = require('path').join(__dirname, '../../../app/js/DocManager')
|
||||
const { ObjectId } = require('mongodb')
|
||||
const Errors = require('../../../app/js/Errors')
|
||||
@@ -36,11 +32,6 @@ describe('DocManager', function () {
|
||||
shouldUpdateRanges: sinon.stub().returns(false)
|
||||
}),
|
||||
'settings-sharelatex': (this.settings = { docstore: {} }),
|
||||
'logger-sharelatex': (this.logger = {
|
||||
log: sinon.stub(),
|
||||
warn() {},
|
||||
err() {}
|
||||
}),
|
||||
'./Errors': Errors
|
||||
}
|
||||
})
|
||||
@@ -493,7 +484,6 @@ describe('DocManager', function () {
|
||||
this.DocArchiveManager.archiveDocById = sinon
|
||||
.stub()
|
||||
.yields(this.err)
|
||||
this.logger.warn = sinon.stub()
|
||||
this.callback = sinon.stub().callsFake(done)
|
||||
this.DocManager.deleteDoc(
|
||||
this.project_id,
|
||||
@@ -630,7 +620,6 @@ describe('DocManager', function () {
|
||||
beforeEach(function () {
|
||||
this.settings.docstore.archiveOnSoftDelete = true
|
||||
this.meta.deleted = true
|
||||
this.logger.warn = sinon.stub()
|
||||
})
|
||||
|
||||
describe('when the background flush succeeds', function () {
|
||||
|
||||
@@ -10,11 +10,8 @@
|
||||
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
||||
*/
|
||||
const SandboxedModule = require('sandboxed-module')
|
||||
const { assert } = require('chai')
|
||||
const sinon = require('sinon')
|
||||
const chai = require('chai')
|
||||
chai.should()
|
||||
const { expect } = chai
|
||||
const { assert, expect } = require('chai')
|
||||
const modulePath = require('path').join(
|
||||
__dirname,
|
||||
'../../../app/js/HttpController'
|
||||
@@ -30,15 +27,9 @@ describe('HttpController', function () {
|
||||
requires: {
|
||||
'./DocManager': (this.DocManager = {}),
|
||||
'./DocArchiveManager': (this.DocArchiveManager = {}),
|
||||
'logger-sharelatex': (this.logger = {
|
||||
log: sinon.stub(),
|
||||
error: sinon.stub(),
|
||||
fatal: sinon.stub()
|
||||
}),
|
||||
'settings-sharelatex': settings,
|
||||
'./HealthChecker': {}
|
||||
},
|
||||
globals: { process }
|
||||
}
|
||||
})
|
||||
this.res = {
|
||||
send: sinon.stub(),
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
*/
|
||||
const SandboxedModule = require('sandboxed-module')
|
||||
const sinon = require('sinon')
|
||||
require('chai').should()
|
||||
const modulePath = require('path').join(
|
||||
__dirname,
|
||||
'../../../app/js/MongoManager'
|
||||
@@ -28,11 +27,7 @@ describe('MongoManager', function () {
|
||||
ObjectId
|
||||
},
|
||||
'@overleaf/metrics': { timeAsyncMethod: sinon.stub() },
|
||||
'logger-sharelatex': { log() {} },
|
||||
'settings-sharelatex': { max_deleted_docs: 42 }
|
||||
},
|
||||
globals: {
|
||||
console
|
||||
}
|
||||
})
|
||||
this.project_id = ObjectId().toString()
|
||||
|
||||
@@ -12,14 +12,12 @@
|
||||
*/
|
||||
const SandboxedModule = require('sandboxed-module')
|
||||
const sinon = require('sinon')
|
||||
require('chai').should()
|
||||
const { expect } = require('chai')
|
||||
const { assert, expect } = require('chai')
|
||||
const modulePath = require('path').join(
|
||||
__dirname,
|
||||
'../../../app/js/RangeManager'
|
||||
)
|
||||
const { ObjectId } = require('mongodb')
|
||||
const { assert } = require('chai')
|
||||
const _ = require('underscore')
|
||||
|
||||
describe('RangeManager', function () {
|
||||
|
||||
Reference in New Issue
Block a user