Fetch brand variation details for branded projects; inject details into the editor page front-end.

Test brand variation details.

Rename BrandVariationsController to BrandVariationsHandler.

Use the V1 API helper.

Do not swallow errors when fetching brand details for project load.

Fix indentation.
This commit is contained in:
Paulo Reis
2018-10-19 10:47:02 +01:00
parent a1fa48b3ed
commit 00a489a000
5 changed files with 110 additions and 3 deletions
@@ -22,6 +22,12 @@ describe "ProjectController", ->
chat:
url:"chat.com"
siteUrl: "mysite.com"
@brandVariationDetails =
id: "12"
active: true
brand_name: "The journal"
home_url: "http://www.thejournal.com/"
publish_menu_link_html: "Submit your paper to the <em>The Journal</em>"
@token = 'some-token'
@ProjectDeleter =
archiveProject: sinon.stub().callsArg(1)
@@ -78,6 +84,9 @@ describe "ProjectController", ->
fire: sinon.stub()
@Features =
hasFeature: sinon.stub()
@BrandVariationsHandler =
getBrandVariationById: sinon.stub().callsArgWith 1, null, @brandVariationDetails
@ProjectController = SandboxedModule.require modulePath, requires:
"settings-sharelatex":@settings
"logger-sharelatex":
@@ -111,6 +120,7 @@ describe "ProjectController", ->
"../../infrastructure/Features": @Features
"../Notifications/NotificationsBuilder":@NotificationBuilder
"../User/UserGetter": @UserGetter
"../BrandVariations/BrandVariationsHandler": @BrandVariationsHandler
@projectName = "£12321jkj9ujkljds"
@req =
@@ -510,6 +520,11 @@ describe "ProjectController", ->
name:"my proj"
_id:"213123kjlkj"
owner_ref: '59fc84d5fbea77482d436e1b'
@brandedProject =
name:"my branded proj"
_id:"3252332"
owner_ref: '59fc84d5fbea77482d436e1b'
brandVariationId:"12"
@user =
_id: "588f3ddae8ebc1bac07c9fa4"
ace:
@@ -570,6 +585,26 @@ describe "ProjectController", ->
done()
@ProjectController.loadEditor @req, @res
it "should call the brand variations handler for branded projects", (done)->
@ProjectGetter.getProject.callsArgWith 2, null, @brandedProject
@res.render = (pageName, opts)=>
@BrandVariationsHandler.getBrandVariationById.calledWith().should.equal true
done()
@ProjectController.loadEditor @req, @res
it "should not call the brand variations handler for unbranded projects", (done)->
@res.render = (pageName, opts)=>
@BrandVariationsHandler.getBrandVariationById.called.should.equal false
done()
@ProjectController.loadEditor @req, @res
it "should expose the brand variation details as locals for branded projects", (done)->
@ProjectGetter.getProject.callsArgWith 2, null, @brandedProject
@res.render = (pageName, opts)=>
opts.brandVariation.should.deep.equal @brandVariationDetails
done()
@ProjectController.loadEditor @req, @res
describe 'userProjectsJson', ->
beforeEach (done) ->
projects = [