Explorar o código

Merge remote-tracking branch 'origin/master' into ae-readme

Alf Eaton %!s(int64=5) %!d(string=hai) anos
pai
achega
268a144e43
Modificáronse 33 ficheiros con 39 adicións e 87 borrados
  1. 1 0
      services/clsi/.dockerignore
  2. 3 0
      services/clsi/.mocharc.json
  3. 1 1
      services/clsi/.nvmrc
  4. 2 2
      services/clsi/Dockerfile
  5. 4 2
      services/clsi/Makefile
  6. 3 3
      services/clsi/buildscript.txt
  7. 0 1
      services/clsi/test/acceptance/js/BrokenLatexFileTests.js
  8. 0 1
      services/clsi/test/acceptance/js/DeleteOldFilesTest.js
  9. 0 1
      services/clsi/test/acceptance/js/ExampleDocumentTests.js
  10. 0 1
      services/clsi/test/acceptance/js/SimpleLatexFileTests.js
  11. 0 1
      services/clsi/test/acceptance/js/SynctexTests.js
  12. 0 1
      services/clsi/test/acceptance/js/TimeoutTests.js
  13. 0 1
      services/clsi/test/acceptance/js/UrlCachingTests.js
  14. 0 1
      services/clsi/test/acceptance/js/WordcountTests.js
  15. 19 0
      services/clsi/test/setup.js
  16. 1 8
      services/clsi/test/unit/js/CompileControllerTests.js
  17. 0 2
      services/clsi/test/unit/js/CompileManagerTests.js
  18. 0 1
      services/clsi/test/unit/js/ContentTypeMapperTests.js
  19. 1 6
      services/clsi/test/unit/js/DockerLockManagerTests.js
  20. 0 7
      services/clsi/test/unit/js/DockerRunnerTests.js
  21. 1 3
      services/clsi/test/unit/js/DraftModeManagerTests.js
  22. 0 5
      services/clsi/test/unit/js/LatexRunnerTests.js
  23. 0 6
      services/clsi/test/unit/js/LockManagerTests.js
  24. 1 3
      services/clsi/test/unit/js/OutputFileFinderTests.js
  25. 0 2
      services/clsi/test/unit/js/OutputFileOptimiserTests.js
  26. 0 6
      services/clsi/test/unit/js/ProjectPersistenceManagerTests.js
  27. 0 1
      services/clsi/test/unit/js/RequestParserTests.js
  28. 0 2
      services/clsi/test/unit/js/ResourceStateManagerTests.js
  29. 1 3
      services/clsi/test/unit/js/ResourceWriterTests.js
  30. 0 6
      services/clsi/test/unit/js/StaticServerForbidSymlinksTests.js
  31. 1 3
      services/clsi/test/unit/js/TikzManager.js
  32. 0 2
      services/clsi/test/unit/js/UrlCacheTests.js
  33. 0 5
      services/clsi/test/unit/js/UrlFetcherTests.js

+ 1 - 0
services/clsi/.dockerignore

@@ -8,3 +8,4 @@ nodemon.json
 cache/
 compiles/
 db/
+output/

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

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

+ 1 - 1
services/clsi/.nvmrc

@@ -1 +1 @@
-10.23.1
+12.21.0

+ 2 - 2
services/clsi/Dockerfile

@@ -2,7 +2,7 @@
 # Instead run bin/update_build_scripts from
 # https://github.com/sharelatex/sharelatex-dev-environment
 
-FROM node:10.23.1 as base
+FROM node:12.21.0 as base
 
 WORKDIR /app
 COPY install_deps.sh /app
@@ -23,6 +23,6 @@ FROM base
 
 COPY --from=app /app /app
 RUN mkdir -p cache compiles db output \
-  &&  chown node:node cache compiles db output
+&&  chown node:node cache compiles db output
 
 CMD ["node", "--expose-gc", "app.js"]

+ 4 - 2
services/clsi/Makefile

@@ -21,8 +21,10 @@ DOCKER_COMPOSE_TEST_UNIT = \
 	COMPOSE_PROJECT_NAME=test_unit_$(BUILD_DIR_NAME) $(DOCKER_COMPOSE)
 
 clean:
-	docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
-	docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
+	-docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
+	-docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
+	-$(DOCKER_COMPOSE_TEST_UNIT) down --rmi local
+	-$(DOCKER_COMPOSE_TEST_ACCEPTANCE) down --rmi local
 
 format:
 	$(DOCKER_COMPOSE) run --rm test_unit npm run --silent format

+ 3 - 3
services/clsi/buildscript.txt

@@ -1,9 +1,9 @@
 clsi
---data-dirs=cache,compiles,db
+--data-dirs=cache,compiles,db,output
 --dependencies=
 --docker-repos=gcr.io/overleaf-ops
 --env-add=
 --env-pass-through=TEXLIVE_IMAGE
---node-version=10.23.1
+--node-version=12.21.0
 --public-repo=True
---script-version=3.4.0
+--script-version=3.7.0

+ 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 = {})
       }
     }))