| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /* eslint-disable
- handle-callback-err,
- 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 SandboxedModule = require('sandboxed-module')
- const sinon = require('sinon')
- const modulePath = require('path').join(
- __dirname,
- '../../../app/js/OutputFileFinder'
- )
- const path = require('path')
- const { expect } = require('chai')
- const { EventEmitter } = require('events')
- describe('OutputFileFinder', function () {
- beforeEach(function () {
- this.OutputFileFinder = SandboxedModule.require(modulePath, {
- requires: {
- fs: (this.fs = {}),
- child_process: { spawn: (this.spawn = sinon.stub()) }
- },
- globals: {
- Math // used by lodash
- }
- })
- this.directory = '/test/dir'
- return (this.callback = sinon.stub())
- })
- describe('findOutputFiles', function () {
- beforeEach(function () {
- this.resource_path = 'resource/path.tex'
- this.output_paths = ['output.pdf', 'extra/file.tex']
- this.all_paths = this.output_paths.concat([this.resource_path])
- this.resources = [{ path: (this.resource_path = 'resource/path.tex') }]
- this.OutputFileFinder._getAllFiles = sinon
- .stub()
- .callsArgWith(1, null, this.all_paths)
- return this.OutputFileFinder.findOutputFiles(
- this.resources,
- this.directory,
- (error, outputFiles) => {
- this.outputFiles = outputFiles
- }
- )
- })
- return it('should only return the output files, not directories or resource paths', function () {
- return expect(this.outputFiles).to.deep.equal([
- {
- path: 'output.pdf',
- type: 'pdf'
- },
- {
- path: 'extra/file.tex',
- type: 'tex'
- }
- ])
- })
- })
- return describe('_getAllFiles', function () {
- beforeEach(function () {
- this.proc = new EventEmitter()
- this.proc.stdout = new EventEmitter()
- this.proc.stdout.setEncoding = sinon.stub().returns(this.proc.stdout)
- this.spawn.returns(this.proc)
- this.directory = '/base/dir'
- return this.OutputFileFinder._getAllFiles(this.directory, this.callback)
- })
- describe('successfully', function () {
- beforeEach(function () {
- this.proc.stdout.emit(
- 'data',
- ['/base/dir/main.tex', '/base/dir/chapters/chapter1.tex'].join('\n') +
- '\n'
- )
- return this.proc.emit('close', 0)
- })
- return it('should call the callback with the relative file paths', function () {
- return this.callback
- .calledWith(null, ['main.tex', 'chapters/chapter1.tex'])
- .should.equal(true)
- })
- })
- return describe("when the directory doesn't exist", function () {
- beforeEach(function () {
- return this.proc.emit('close', 1)
- })
- return it('should call the callback with a blank array', function () {
- return this.callback.calledWith(null, []).should.equal(true)
- })
- })
- })
- })
|