mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-30 16:05:10 -05:00
150 lines
4.4 KiB
CoffeeScript
150 lines
4.4 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:->
|
|
err:->
|
|
@stubbedApiData =
|
|
template:{_id:"12312321", name:"bob"}
|
|
tag: {name:"tag name"}
|
|
|
|
@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
|
|
|
|
|
|
|
|
|