Procházet zdrojové kódy

Add a global test setup file

Set up generally useful stuff:

* chai.should()
* logger stubs
* globals in SandboxedModule, including Buffer and process, which are
  now required in Node 12
Eric Mc Sween před 5 roky
rodič
revize
9f2d219102
28 změnil soubory, kde provedl 28 přidání a 79 odebrání
  1. 3 0
      services/clsi/.mocharc.json
  2. 0 1
      services/clsi/test/acceptance/js/BrokenLatexFileTests.js
  3. 0 1
      services/clsi/test/acceptance/js/DeleteOldFilesTest.js
  4. 0 1
      services/clsi/test/acceptance/js/ExampleDocumentTests.js
  5. 0 1
      services/clsi/test/acceptance/js/SimpleLatexFileTests.js
  6. 0 1
      services/clsi/test/acceptance/js/SynctexTests.js
  7. 0 1
      services/clsi/test/acceptance/js/TimeoutTests.js
  8. 0 1
      services/clsi/test/acceptance/js/UrlCachingTests.js
  9. 0 1
      services/clsi/test/acceptance/js/WordcountTests.js
  10. 19 0
      services/clsi/test/setup.js
  11. 1 8
      services/clsi/test/unit/js/CompileControllerTests.js
  12. 0 2
      services/clsi/test/unit/js/CompileManagerTests.js
  13. 0 1
      services/clsi/test/unit/js/ContentTypeMapperTests.js
  14. 1 6
      services/clsi/test/unit/js/DockerLockManagerTests.js
  15. 0 7
      services/clsi/test/unit/js/DockerRunnerTests.js
  16. 1 3
      services/clsi/test/unit/js/DraftModeManagerTests.js
  17. 0 5
      services/clsi/test/unit/js/LatexRunnerTests.js
  18. 0 6
      services/clsi/test/unit/js/LockManagerTests.js
  19. 1 3
      services/clsi/test/unit/js/OutputFileFinderTests.js
  20. 0 2
      services/clsi/test/unit/js/OutputFileOptimiserTests.js
  21. 0 6
      services/clsi/test/unit/js/ProjectPersistenceManagerTests.js
  22. 0 1
      services/clsi/test/unit/js/RequestParserTests.js
  23. 0 2
      services/clsi/test/unit/js/ResourceStateManagerTests.js
  24. 1 3
      services/clsi/test/unit/js/ResourceWriterTests.js
  25. 0 6
      services/clsi/test/unit/js/StaticServerForbidSymlinksTests.js
  26. 1 3
      services/clsi/test/unit/js/TikzManager.js
  27. 0 2
      services/clsi/test/unit/js/UrlCacheTests.js
  28. 0 5
      services/clsi/test/unit/js/UrlFetcherTests.js

+ 3 - 0
services/clsi/.mocharc.json

@@ -0,0 +1,3 @@
+{
+  "require": "test/setup.js"
+}

+ 0 - 1
services/clsi/test/acceptance/js/BrokenLatexFileTests.js

@@ -10,7 +10,6 @@
  */
 const Client = require('./helpers/Client')
 const request = require('request')
-require('chai').should()
 const ClsiApp = require('./helpers/ClsiApp')
 
 describe('Broken LaTeX file', function () {

+ 0 - 1
services/clsi/test/acceptance/js/DeleteOldFilesTest.js

@@ -10,7 +10,6 @@
  */
 const Client = require('./helpers/Client')
 const request = require('request')
-require('chai').should()
 const ClsiApp = require('./helpers/ClsiApp')
 
 describe('Deleting Old Files', function () {

+ 0 - 1
services/clsi/test/acceptance/js/ExampleDocumentTests.js

@@ -17,7 +17,6 @@
  */
 const Client = require('./helpers/Client')
 const request = require('request')
-require('chai').should()
 const fs = require('fs')
 const fsExtra = require('fs-extra')
 const ChildProcess = require('child_process')

+ 0 - 1
services/clsi/test/acceptance/js/SimpleLatexFileTests.js

@@ -10,7 +10,6 @@
  */
 const Client = require('./helpers/Client')
 const request = require('request')
-require('chai').should()
 const ClsiApp = require('./helpers/ClsiApp')
 
 describe('Simple LaTeX file', function () {

+ 0 - 1
services/clsi/test/acceptance/js/SynctexTests.js

@@ -11,7 +11,6 @@
  */
 const Client = require('./helpers/Client')
 const request = require('request')
-require('chai').should()
 const { expect } = require('chai')
 const ClsiApp = require('./helpers/ClsiApp')
 const crypto = require('crypto')

+ 0 - 1
services/clsi/test/acceptance/js/TimeoutTests.js

@@ -10,7 +10,6 @@
  */
 const Client = require('./helpers/Client')
 const request = require('request')
-require('chai').should()
 const ClsiApp = require('./helpers/ClsiApp')
 
 describe('Timed out compile', function () {

+ 0 - 1
services/clsi/test/acceptance/js/UrlCachingTests.js

@@ -11,7 +11,6 @@
  * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  */
 const Client = require('./helpers/Client')
-require('chai').should()
 const sinon = require('sinon')
 const ClsiApp = require('./helpers/ClsiApp')
 

+ 0 - 1
services/clsi/test/acceptance/js/WordcountTests.js

@@ -11,7 +11,6 @@
  */
 const Client = require('./helpers/Client')
 const request = require('request')
-require('chai').should()
 const { expect } = require('chai')
 const path = require('path')
 const fs = require('fs')

+ 19 - 0
services/clsi/test/setup.js

@@ -0,0 +1,19 @@
+const chai = require('chai')
+const SandboxedModule = require('sandboxed-module')
+
+// Setup should interface
+chai.should()
+
+// Global SandboxedModule settings
+SandboxedModule.configure({
+  requires: {
+    'logger-sharelatex': {
+      log() {},
+      info() {},
+      warn() {},
+      error() {},
+      err() {}
+    }
+  },
+  globals: { Buffer, console, process }
+})

+ 1 - 8
services/clsi/test/unit/js/CompileControllerTests.js

@@ -11,7 +11,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const { expect } = require('chai')
 const modulePath = require('path').join(
   __dirname,
@@ -32,13 +31,7 @@ describe('CompileController', function () {
             }
           }
         }),
-        './ProjectPersistenceManager': (this.ProjectPersistenceManager = {}),
-        'logger-sharelatex': (this.logger = {
-          log: sinon.stub(),
-          error: sinon.stub(),
-          err: sinon.stub(),
-          warn: sinon.stub()
-        })
+        './ProjectPersistenceManager': (this.ProjectPersistenceManager = {})
       }
     })
     this.Settings.externalUrl = 'http://www.example.com'

+ 0 - 2
services/clsi/test/unit/js/CompileManagerTests.js

@@ -15,7 +15,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const modulePath = require('path').join(
   __dirname,
   '../../../app/js/CompileManager'
@@ -47,7 +46,6 @@ describe('CompileManager', function () {
           }
         }),
 
-        'logger-sharelatex': (this.logger = { log: sinon.stub(), info() {} }),
         child_process: (this.child_process = {}),
         './CommandRunner': (this.CommandRunner = {}),
         './DraftModeManager': (this.DraftModeManager = {}),

+ 0 - 1
services/clsi/test/unit/js/ContentTypeMapperTests.js

@@ -12,7 +12,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const modulePath = require('path').join(
   __dirname,
   '../../../app/js/ContentTypeMapper'

+ 1 - 6
services/clsi/test/unit/js/DockerLockManagerTests.js

@@ -11,7 +11,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const modulePath = require('path').join(
   __dirname,
   '../../../app/js/DockerLockManager'
@@ -21,11 +20,7 @@ describe('LockManager', function () {
   beforeEach(function () {
     return (this.LockManager = SandboxedModule.require(modulePath, {
       requires: {
-        'settings-sharelatex': (this.Settings = { clsi: { docker: {} } }),
-        'logger-sharelatex': (this.logger = {
-          log: sinon.stub(),
-          error: sinon.stub()
-        })
+        'settings-sharelatex': (this.Settings = { clsi: { docker: {} } })
       }
     }))
   })

+ 0 - 7
services/clsi/test/unit/js/DockerRunnerTests.js

@@ -15,7 +15,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const { expect } = require('chai')
 const modulePath = require('path').join(
   __dirname,
@@ -33,12 +32,6 @@ describe('DockerRunner', function () {
           clsi: { docker: {} },
           path: {}
         }),
-        'logger-sharelatex': (this.logger = {
-          log: sinon.stub(),
-          error: sinon.stub(),
-          info: sinon.stub(),
-          warn: sinon.stub()
-        }),
         dockerode: (Docker = (function () {
           Docker = class Docker {
             static initClass() {

+ 1 - 3
services/clsi/test/unit/js/DraftModeManagerTests.js

@@ -10,7 +10,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const modulePath = require('path').join(
   __dirname,
   '../../../app/js/DraftModeManager'
@@ -20,8 +19,7 @@ describe('DraftModeManager', function () {
   beforeEach(function () {
     return (this.DraftModeManager = SandboxedModule.require(modulePath, {
       requires: {
-        fs: (this.fs = {}),
-        'logger-sharelatex': (this.logger = { log() {} })
+        fs: (this.fs = {})
       }
     }))
   })

+ 0 - 5
services/clsi/test/unit/js/LatexRunnerTests.js

@@ -11,7 +11,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const modulePath = require('path').join(
   __dirname,
   '../../../app/js/LatexRunner'
@@ -28,10 +27,6 @@ describe('LatexRunner', function () {
             socketPath: '/var/run/docker.sock'
           }
         }),
-        'logger-sharelatex': (this.logger = {
-          log: sinon.stub(),
-          error: sinon.stub()
-        }),
         './Metrics': {
           Timer: (Timer = class Timer {
             done() {}

+ 0 - 6
services/clsi/test/unit/js/LockManagerTests.js

@@ -11,7 +11,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const modulePath = require('path').join(
   __dirname,
   '../../../app/js/LockManager'
@@ -24,11 +23,6 @@ describe('DockerLockManager', function () {
     this.LockManager = SandboxedModule.require(modulePath, {
       requires: {
         'settings-sharelatex': {},
-        'logger-sharelatex': (this.logger = {
-          log: sinon.stub(),
-          error: sinon.stub(),
-          err() {}
-        }),
         fs: {
           lstat: sinon.stub().callsArgWith(1),
           readdir: sinon.stub().callsArgWith(1)

+ 1 - 3
services/clsi/test/unit/js/OutputFileFinderTests.js

@@ -12,7 +12,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const modulePath = require('path').join(
   __dirname,
   '../../../app/js/OutputFileFinder'
@@ -26,8 +25,7 @@ describe('OutputFileFinder', function () {
     this.OutputFileFinder = SandboxedModule.require(modulePath, {
       requires: {
         fs: (this.fs = {}),
-        child_process: { spawn: (this.spawn = sinon.stub()) },
-        'logger-sharelatex': { log: sinon.stub(), warn: sinon.stub() }
+        child_process: { spawn: (this.spawn = sinon.stub()) }
       },
       globals: {
         Math // used by lodash

+ 0 - 2
services/clsi/test/unit/js/OutputFileOptimiserTests.js

@@ -12,7 +12,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const modulePath = require('path').join(
   __dirname,
   '../../../app/js/OutputFileOptimiser'
@@ -28,7 +27,6 @@ describe('OutputFileOptimiser', function () {
         fs: (this.fs = {}),
         path: (this.Path = {}),
         child_process: { spawn: (this.spawn = sinon.stub()) },
-        'logger-sharelatex': { log: sinon.stub(), warn: sinon.stub() },
         './Metrics': {}
       },
       globals: { Math } // used by lodash

+ 0 - 6
services/clsi/test/unit/js/ProjectPersistenceManagerTests.js

@@ -13,7 +13,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const assert = require('chai').assert
 const modulePath = require('path').join(
   __dirname,
@@ -28,11 +27,6 @@ describe('ProjectPersistenceManager', function () {
         './UrlCache': (this.UrlCache = {}),
         './CompileManager': (this.CompileManager = {}),
         diskusage: (this.diskusage = { check: sinon.stub() }),
-        'logger-sharelatex': (this.logger = {
-          log: sinon.stub(),
-          warn: sinon.stub(),
-          err: sinon.stub()
-        }),
         'settings-sharelatex': (this.settings = {
           project_cache_length_ms: 1000
         }),

+ 0 - 1
services/clsi/test/unit/js/RequestParserTests.js

@@ -11,7 +11,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const { expect } = require('chai')
 const modulePath = require('path').join(
   __dirname,

+ 0 - 2
services/clsi/test/unit/js/ResourceStateManagerTests.js

@@ -12,7 +12,6 @@
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
 const { expect } = require('chai')
-const should = require('chai').should()
 const modulePath = require('path').join(
   __dirname,
   '../../../app/js/ResourceStateManager'
@@ -26,7 +25,6 @@ describe('ResourceStateManager', function () {
       singleOnly: true,
       requires: {
         fs: (this.fs = {}),
-        'logger-sharelatex': { log: sinon.stub(), err: sinon.stub() },
         './SafeReader': (this.SafeReader = {})
       }
     })

+ 1 - 3
services/clsi/test/unit/js/ResourceWriterTests.js

@@ -13,7 +13,6 @@
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
 const { expect } = require('chai')
-const should = require('chai').should()
 const modulePath = require('path').join(
   __dirname,
   '../../../app/js/ResourceWriter'
@@ -34,7 +33,6 @@ describe('ResourceWriter', function () {
         wrench: (this.wrench = {}),
         './UrlCache': (this.UrlCache = {}),
         './OutputFileFinder': (this.OutputFileFinder = {}),
-        'logger-sharelatex': { log: sinon.stub(), err: sinon.stub() },
         './Metrics': (this.Metrics = {
           inc: sinon.stub(),
           Timer: (Timer = (function () {
@@ -407,7 +405,7 @@ describe('ResourceWriter', function () {
       })
 
       return it('should not return an error if the resource writer errored', function () {
-        return should.not.exist(this.callback.args[0][0])
+        return expect(this.callback.args[0][0]).not.to.exist
       })
     })
 

+ 0 - 6
services/clsi/test/unit/js/StaticServerForbidSymlinksTests.js

@@ -9,7 +9,6 @@
  * DS102: Remove unnecessary code created because of implicit returns
  * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  */
-const should = require('chai').should()
 const SandboxedModule = require('sandboxed-module')
 const assert = require('assert')
 const path = require('path')
@@ -32,11 +31,6 @@ describe('StaticServerForbidSymlinks', function () {
     this.ForbidSymlinks = SandboxedModule.require(modulePath, {
       requires: {
         'settings-sharelatex': this.settings,
-        'logger-sharelatex': {
-          log() {},
-          warn() {},
-          error() {}
-        },
         fs: this.fs
       }
     })

+ 1 - 3
services/clsi/test/unit/js/TikzManager.js

@@ -10,7 +10,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const modulePath = require('path').join(
   __dirname,
   '../../../app/js/TikzManager'
@@ -22,8 +21,7 @@ describe('TikzManager', function () {
       requires: {
         './ResourceWriter': (this.ResourceWriter = {}),
         './SafeReader': (this.SafeReader = {}),
-        fs: (this.fs = {}),
-        'logger-sharelatex': (this.logger = { log() {} })
+        fs: (this.fs = {})
       }
     }))
   })

+ 0 - 2
services/clsi/test/unit/js/UrlCacheTests.js

@@ -12,7 +12,6 @@
  */
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-require('chai').should()
 const modulePath = require('path').join(__dirname, '../../../app/js/UrlCache')
 const { EventEmitter } = require('events')
 
@@ -25,7 +24,6 @@ describe('UrlCache', function () {
       requires: {
         './db': {},
         './UrlFetcher': (this.UrlFetcher = {}),
-        'logger-sharelatex': (this.logger = { log: sinon.stub() }),
         'settings-sharelatex': (this.Settings = {
           path: { clsiCacheDir: '/cache/dir' }
         }),

+ 0 - 5
services/clsi/test/unit/js/UrlFetcherTests.js

@@ -11,7 +11,6 @@
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
 const { expect } = require('chai')
-require('chai').should()
 const modulePath = require('path').join(__dirname, '../../../app/js/UrlFetcher')
 const { EventEmitter } = require('events')
 
@@ -25,10 +24,6 @@ describe('UrlFetcher', function () {
           defaults: (this.defaults = sinon.stub().returns((this.request = {})))
         },
         fs: (this.fs = {}),
-        'logger-sharelatex': (this.logger = {
-          log: sinon.stub(),
-          error: sinon.stub()
-        }),
         'settings-sharelatex': (this.settings = {})
       }
     }))