Remove unnecessary project getter

Had bad assumption about whether ol-integration module would be available in
filesystem, now replaced with Module hook
This commit is contained in:
Alasdair Smith 2017-11-15 15:59:13 +00:00
parent 621977c47c
commit 119be26989
2 changed files with 0 additions and 75 deletions

View file

@ -1,21 +0,0 @@
fs = require 'fs'
path = require 'path'
logger = require 'logger-sharelatex'
INTEGRATION_MODULE_PATH = path.resolve(__dirname, '../../../../modules/overleaf-integration-web-module')
V1ProjectGetter =
# Default implementation is a no-op
findAllUsersProjects: (userId, callback = (error, projects) ->) ->
logger.log {}, "integration modules doesn't exist, not loading V1 projects"
return callback()
fs.stat INTEGRATION_MODULE_PATH, (error, stats) ->
return if error? or !stats.isDirectory()
logger.log {isDirectory: stats.isDirectory()}, "integration module does exist, loading V1 projects"
# Monkey patch impl to actually fetch projects
V1ProjectGetter.findAllUsersProjects = (userId, callback = (error, projects) ->) ->
IntegrationProjectListGetter = require(path.join(INTEGRATION_MODULE_PATH, 'app/coffee/ProjectList/ProjectListGetter'))
IntegrationProjectListGetter.findAllUsersProjects(userId, callback)
module.exports = V1ProjectGetter

View file

@ -1,54 +0,0 @@
sinon = require('sinon')
should = require('chai').should()
SandboxedModule = require('sandboxed-module')
modulePath = '../../../../app/js/Features/Project/V1ProjectGetter.js'
describe 'V1ProjectGetter', ->
beforeEach ->
@path =
resolve: sinon.stub().returns('path/to/integration/module')
join: sinon.stub().returns('path/to/file/in/integration/module')
@IntegrationProjectListGetter =
findAllUsersProjects: sinon.stub()
@userId = 123
@callback = sinon.stub()
describe 'without overleaf-integration-web-module', ->
beforeEach ->
@fs =
stat: sinon.stub().yields({code: 'mock-ENOENT-error'})
@V1ProjectGetter = SandboxedModule.require modulePath, requires:
# Mock not finding integration module
'fs': @fs
'path': @path
'logger-sharelatex': log: ->
'path/to/file/in/integration/module': @IntegrationProjectListGetter
# Call method
@V1ProjectGetter.findAllUsersProjects @userId, @callback
it 'should call the callback with no arguments', ->
@callback.calledWith().should.equal true
@IntegrationProjectListGetter.findAllUsersProjects.called.should.equal false
describe 'with overleaf-integration-web-module', ->
beforeEach ->
@fs =
stat: sinon.stub().yields(null, isDirectory: sinon.stub().returns(true))
@V1ProjectGetter = SandboxedModule.require modulePath, requires:
# Mock finding integration module
'fs': @fs
'path': @path
'logger-sharelatex': log: ->
'path/to/file/in/integration/module': @IntegrationProjectListGetter
# Mock integration module response
@IntegrationProjectListGetter.findAllUsersProjects.yields(null, @response = {
projects: [{ id: '123mockV1Id', title: 'mock title' }]
tags: [{ name: 'mock tag', project_ids: ['123mockV1Id'] }]
})
# Call method
@V1ProjectGetter.findAllUsersProjects @userId, @callback
it 'should call the callback with all the projects and tags', ->
@callback.calledWith(null, @response).should.equal true
@IntegrationProjectListGetter.findAllUsersProjects.called.should.equal true