overleaf/services/filestore/test/unit/coffee/ImageOptimiserTests.coffee

65 lines
1.6 KiB
CoffeeScript
Raw Normal View History

2014-02-14 11:39:05 -05:00
assert = require("chai").assert
sinon = require('sinon')
chai = require('chai')
should = chai.should()
expect = chai.expect
modulePath = "../../../app/js/ImageOptimiser.js"
SandboxedModule = require('sandboxed-module')
describe "ImageOptimiser", ->
beforeEach ->
@child_process =
exec : sinon.stub()
@settings =
enableConversions:true
2014-02-14 11:39:05 -05:00
@optimiser = SandboxedModule.require modulePath, requires:
'child_process': @child_process
2014-02-14 11:39:05 -05:00
"logger-sharelatex":
log:->
err:->
warn:->
"settings-sharelatex": @settings
2014-02-14 11:39:05 -05:00
@sourcePath = "/this/path/here.eps"
@error = "Error"
describe "compressPng", ->
it "convert the file", (done)->
@child_process.exec.callsArgWith(2)
2014-02-14 11:39:05 -05:00
@optimiser.compressPng @sourcePath, (err)=>
args = @child_process.exec.args[0][0]
args.should.equal "optipng #{@sourcePath}"
2014-02-14 11:39:05 -05:00
done()
it "should return the error", (done)->
@child_process.exec.callsArgWith(2, @error)
2014-02-14 11:39:05 -05:00
@optimiser.compressPng @sourcePath, (err)=>
err.should.equal @error
done()
describe 'when enableConversions is disabled', ->
it 'should produce an error', (done) ->
@settings.enableConversions = false
@child_process.exec.callsArgWith(2)
@optimiser.compressPng @sourcePath, (err)=>
@child_process.exec.called.should.equal false
expect(err).to.exist
done()
describe 'when optimiser is sigkilled', ->
it 'should not produce an error', (done) ->
@error = new Error('woops')
@error.signal = 'SIGKILL'
@child_process.exec.callsArgWith(2, @error)
@optimiser.compressPng @sourcePath, (err)=>
expect(err).to.equal(null)
done()