| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- const SandboxedModule = require('sandboxed-module')
- const sinon = require('sinon')
- const modulePath = require('path').join(
- __dirname,
- '../../../app/js/OutputFileFinder'
- )
- const { expect } = require('chai')
- const mockFs = require('mock-fs')
- describe('OutputFileFinder', function () {
- beforeEach(function () {
- this.OutputFileFinder = SandboxedModule.require(modulePath, {})
- this.directory = '/test/dir'
- this.callback = sinon.stub()
- mockFs({
- [this.directory]: {
- resource: {
- 'path.tex': 'a source file',
- },
- 'output.pdf': 'a generated pdf file',
- extra: {
- 'file.tex': 'a generated tex file',
- },
- 'sneaky-file': mockFs.symlink({
- path: '../foo',
- }),
- },
- })
- })
- afterEach(function () {
- mockFs.restore()
- })
- describe('findOutputFiles', function () {
- beforeEach(async 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') }]
- const { outputFiles, allEntries } =
- await this.OutputFileFinder.promises.findOutputFiles(
- this.resources,
- this.directory
- )
- this.outputFiles = outputFiles
- this.allEntries = allEntries
- })
- it('should only return the output files, not directories or resource paths', function () {
- expect(this.outputFiles).to.have.deep.members([
- {
- path: 'output.pdf',
- type: 'pdf',
- },
- {
- path: 'extra/file.tex',
- type: 'tex',
- },
- ])
- expect(this.allEntries).to.deep.equal([
- 'extra/file.tex',
- 'extra/',
- 'output.pdf',
- 'resource/path.tex',
- 'resource/',
- 'sneaky-file',
- ])
- })
- })
- })
|