| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- SandboxedModule = require('sandboxed-module')
- sinon = require('sinon')
- require('chai').should()
- modulePath = require('path').join __dirname, '../../../app/js/OutputFileFinder'
- path = require "path"
- expect = require("chai").expect
- EventEmitter = require("events").EventEmitter
- describe "OutputFileFinder", ->
- beforeEach ->
- @OutputFileFinder = SandboxedModule.require modulePath, requires:
- "fs": @fs = {}
- "child_process": spawn: @spawn = sinon.stub()
- "logger-sharelatex": { log: sinon.stub(), warn: sinon.stub() }
- @directory = "/test/dir"
- @callback = sinon.stub()
- describe "findOutputFiles", ->
- beforeEach ->
- @resource_path = "resource/path.tex"
- @output_paths = ["output.pdf", "extra/file.tex"]
- @all_paths = @output_paths.concat [@resource_path]
- @resources = [
- path: @resource_path = "resource/path.tex"
- ]
- @OutputFileFinder._getAllFiles = sinon.stub().callsArgWith(1, null, @all_paths)
- @OutputFileFinder.findOutputFiles @resources, @directory, (error, @outputFiles) =>
- it "should only return the output files, not directories or resource paths", ->
- expect(@outputFiles).to.deep.equal [{
- path: "output.pdf"
- type: "pdf"
- }, {
- path: "extra/file.tex",
- type: "tex"
- }]
-
- describe "_getAllFiles", ->
- beforeEach ->
- @proc = new EventEmitter()
- @proc.stdout = new EventEmitter()
- @spawn.returns @proc
- @directory = "/base/dir"
- @OutputFileFinder._getAllFiles @directory, @callback
-
- describe "successfully", ->
- beforeEach ->
- @proc.stdout.emit(
- "data",
- ["/base/dir/main.tex", "/base/dir/chapters/chapter1.tex"].join("\n") + "\n"
- )
- @proc.emit "close", 0
-
- it "should call the callback with the relative file paths", ->
- @callback.calledWith(
- null,
- ["main.tex", "chapters/chapter1.tex"]
- ).should.equal true
- describe "when the directory doesn't exist", ->
- beforeEach ->
- @proc.emit "close", 1
-
- it "should call the callback with a blank array", ->
- @callback.calledWith(
- null,
- []
- ).should.equal true
|