mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
148 lines
4.3 KiB
CoffeeScript
148 lines
4.3 KiB
CoffeeScript
|
should = require('chai').should()
|
||
|
SandboxedModule = require('sandboxed-module')
|
||
|
assert = require('assert')
|
||
|
path = require('path')
|
||
|
sinon = require('sinon')
|
||
|
modulePath = path.join __dirname, "../../../../app/js/Features/Templates/TemplatesWebController"
|
||
|
expect = require("chai").expect
|
||
|
|
||
|
describe "TemplatesWebController", ->
|
||
|
|
||
|
beforeEach ->
|
||
|
|
||
|
@settings =
|
||
|
apis:
|
||
|
templates_api:
|
||
|
url:"templates.sharelatex.env"
|
||
|
@TemplatesWebController = SandboxedModule.require modulePath, requires:
|
||
|
"settings-sharelatex":@settings
|
||
|
"logger-sharelatex": log:->
|
||
|
@stubbedApiData =
|
||
|
templates:[{_id:"12312321"}]
|
||
|
|
||
|
@TemplatesWebController._getDataFromTemplatesApi = sinon.stub().callsArgWith(1, null, @stubbedApiData)
|
||
|
|
||
|
@user_id = "12332lk3jlkj"
|
||
|
@tag_name = "tag-name-here"
|
||
|
@template_name = "template-name-here"
|
||
|
@template_id = "template_id_here"
|
||
|
@req =
|
||
|
params:
|
||
|
user_id: @user_id
|
||
|
@res = {}
|
||
|
|
||
|
describe "renderTemplatesIndexPage", ->
|
||
|
|
||
|
it "should get the data from the templates api", (done)->
|
||
|
@res.render = (viewName, data)=>
|
||
|
@TemplatesWebController._getDataFromTemplatesApi.calledWith("/user/#{@user_id}").should.equal true
|
||
|
data.should.equal @stubbedApiData
|
||
|
done()
|
||
|
@TemplatesWebController.renderTemplatesIndexPage @req, @res
|
||
|
|
||
|
|
||
|
describe "renerTemplateInTag", ->
|
||
|
|
||
|
it "should get the data from the templates api", (done)->
|
||
|
@res.render = (viewName, data)=>
|
||
|
@TemplatesWebController._getDataFromTemplatesApi.calledWith("/user/#{@user_id}/tag/#{@tag_name}/template/#{@template_name}").should.equal true
|
||
|
data.should.equal @stubbedApiData
|
||
|
done()
|
||
|
|
||
|
@req.params =
|
||
|
user_id:@user_id
|
||
|
template_name:@template_name
|
||
|
tag_name:@tag_name
|
||
|
|
||
|
@TemplatesWebController.renerTemplateInTag @req, @res
|
||
|
|
||
|
|
||
|
describe "tagOrCanonicalPage", ->
|
||
|
|
||
|
beforeEach ->
|
||
|
@TemplatesWebController._renderCanonicalPage = sinon.stub()
|
||
|
@TemplatesWebController._renderAllTemplatesPage = sinon.stub()
|
||
|
@TemplatesWebController._renderTagPage = sinon.stub()
|
||
|
|
||
|
it "should call _renderCanonicalPage if there is a template id", ()->
|
||
|
|
||
|
@req.params =
|
||
|
template_id:@template_id
|
||
|
|
||
|
@TemplatesWebController.tagOrCanonicalPage @req, @res
|
||
|
|
||
|
@TemplatesWebController._renderCanonicalPage.called.should.equal true
|
||
|
@TemplatesWebController._renderAllTemplatesPage.called.should.equal false
|
||
|
@TemplatesWebController._renderTagPage.called.should.equal false
|
||
|
|
||
|
it "should call _renderAllTemplatesPage the tag name is all", ()->
|
||
|
|
||
|
@req.params =
|
||
|
tag_name:"all"
|
||
|
|
||
|
@TemplatesWebController.tagOrCanonicalPage @req, @res
|
||
|
|
||
|
@TemplatesWebController._renderCanonicalPage.called.should.equal false
|
||
|
@TemplatesWebController._renderAllTemplatesPage.called.should.equal true
|
||
|
@TemplatesWebController._renderTagPage.called.should.equal false
|
||
|
|
||
|
|
||
|
it "should call _renderTagPage the tag name is set", ()->
|
||
|
|
||
|
@req.params =
|
||
|
tag_name:"some-tag"
|
||
|
|
||
|
@TemplatesWebController.tagOrCanonicalPage @req, @res
|
||
|
|
||
|
@TemplatesWebController._renderCanonicalPage.called.should.equal false
|
||
|
@TemplatesWebController._renderAllTemplatesPage.called.should.equal false
|
||
|
@TemplatesWebController._renderTagPage.called.should.equal true
|
||
|
|
||
|
describe "_renderCanonicalPage", ->
|
||
|
|
||
|
it "should get the data from the templates api", (done)->
|
||
|
@res.render = (viewName, data)=>
|
||
|
@TemplatesWebController._getDataFromTemplatesApi.calledWith("/user/#{@user_id}/template/#{@template_id}").should.equal true
|
||
|
data.tag = null
|
||
|
data.should.equal @stubbedApiData
|
||
|
done()
|
||
|
|
||
|
@req.params =
|
||
|
user_id:@user_id
|
||
|
template_id:@template_id
|
||
|
|
||
|
@TemplatesWebController._renderCanonicalPage @req, @res
|
||
|
|
||
|
|
||
|
describe "_renderAllTemplatesPage", ->
|
||
|
|
||
|
it "should get the data from the templates api", (done)->
|
||
|
@res.render = (viewName, data)=>
|
||
|
@TemplatesWebController._getDataFromTemplatesApi.calledWith("/user/#{@user_id}/all").should.equal true
|
||
|
data.should.equal @stubbedApiData
|
||
|
done()
|
||
|
|
||
|
@req.params =
|
||
|
user_id:@user_id
|
||
|
|
||
|
@TemplatesWebController._renderAllTemplatesPage @req, @res
|
||
|
|
||
|
|
||
|
describe "_renderTagPage", ->
|
||
|
|
||
|
it "should get the data from the templates api", (done)->
|
||
|
@res.render = (viewName, data)=>
|
||
|
@TemplatesWebController._getDataFromTemplatesApi.calledWith("/user/#{@user_id}/tag/#{@tag_name}").should.equal true
|
||
|
data.should.equal @stubbedApiData
|
||
|
done()
|
||
|
|
||
|
@req.params =
|
||
|
user_id:@user_id
|
||
|
tag_name:@tag_name
|
||
|
|
||
|
@TemplatesWebController._renderTagPage @req, @res
|
||
|
|
||
|
|
||
|
|
||
|
|