mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-27 08:43:25 +00:00
71 lines
1.9 KiB
JavaScript
71 lines
1.9 KiB
JavaScript
const sinon = require('sinon')
|
|
const chai = require('chai')
|
|
const { expect } = chai
|
|
const modulePath = '../../../app/js/ImageOptimiser.js'
|
|
const { FailedCommandError } = require('../../../app/js/Errors')
|
|
const SandboxedModule = require('sandboxed-module')
|
|
|
|
describe('ImageOptimiser', function() {
|
|
let ImageOptimiser, SafeExec, logger
|
|
const sourcePath = '/wombat/potato.eps'
|
|
|
|
beforeEach(function() {
|
|
SafeExec = {
|
|
promises: sinon.stub().resolves()
|
|
}
|
|
logger = {
|
|
warn: sinon.stub()
|
|
}
|
|
ImageOptimiser = SandboxedModule.require(modulePath, {
|
|
requires: {
|
|
'./SafeExec': SafeExec,
|
|
'logger-sharelatex': logger,
|
|
'metrics-sharelatex': {
|
|
Timer: sinon.stub().returns({ done: sinon.stub() })
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
describe('compressPng', function() {
|
|
it('should convert the file', function(done) {
|
|
ImageOptimiser.compressPng(sourcePath, err => {
|
|
expect(err).not.to.exist
|
|
expect(SafeExec.promises).to.have.been.calledWith([
|
|
'optipng',
|
|
sourcePath
|
|
])
|
|
done()
|
|
})
|
|
})
|
|
|
|
it('should return the error', function(done) {
|
|
SafeExec.promises.rejects('wombat herding failure')
|
|
ImageOptimiser.compressPng(sourcePath, err => {
|
|
expect(err.toString()).to.equal('wombat herding failure')
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('when optimiser is sigkilled', function() {
|
|
const expectedError = new FailedCommandError('', 'SIGKILL', '', '')
|
|
let error
|
|
|
|
beforeEach(function(done) {
|
|
SafeExec.promises.rejects(expectedError)
|
|
ImageOptimiser.compressPng(sourcePath, err => {
|
|
error = err
|
|
done()
|
|
})
|
|
})
|
|
|
|
it('should not produce an error', function() {
|
|
expect(error).not.to.exist
|
|
})
|
|
|
|
it('should log a warning', function() {
|
|
expect(logger.warn).to.have.been.calledOnce
|
|
})
|
|
})
|
|
})
|