Adding tests
parent
70aa783729
commit
963754301f
|
@ -3,7 +3,6 @@ class FeedbackService extends taiga.Service
|
||||||
|
|
||||||
constructor: (@lightboxFactory) ->
|
constructor: (@lightboxFactory) ->
|
||||||
|
|
||||||
|
|
||||||
sendFeedback: ->
|
sendFeedback: ->
|
||||||
@lightboxFactory.create("tg-lb-feedback", {
|
@lightboxFactory.create("tg-lb-feedback", {
|
||||||
"class": "lightbox lightbox-feedback lightbox-generic-form"
|
"class": "lightbox lightbox-feedback lightbox-generic-form"
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
describe "tgFeedbackService", ->
|
||||||
|
feedbackService = provide = null
|
||||||
|
mocks = {}
|
||||||
|
|
||||||
|
_mockTgLightboxFactory = () ->
|
||||||
|
mocks.tgLightboxFactory = {
|
||||||
|
create: sinon.stub()
|
||||||
|
}
|
||||||
|
|
||||||
|
provide.value "tgLightboxFactory", mocks.tgLightboxFactory
|
||||||
|
|
||||||
|
_inject = (callback) ->
|
||||||
|
inject (_tgFeedbackService_) ->
|
||||||
|
feedbackService = _tgFeedbackService_
|
||||||
|
callback() if callback
|
||||||
|
|
||||||
|
_mocks = () ->
|
||||||
|
module ($provide) ->
|
||||||
|
provide = $provide
|
||||||
|
_mockTgLightboxFactory()
|
||||||
|
return null
|
||||||
|
|
||||||
|
_setup = ->
|
||||||
|
_mocks()
|
||||||
|
|
||||||
|
beforeEach ->
|
||||||
|
module "taigaFeedback"
|
||||||
|
_setup()
|
||||||
|
_inject()
|
||||||
|
|
||||||
|
it "work in progress filled", () ->
|
||||||
|
expect(mocks.tgLightboxFactory.create.callCount).to.be.equal(0)
|
||||||
|
feedbackService.sendFeedback()
|
||||||
|
expect(mocks.tgLightboxFactory.create.callCount).to.be.equal(1)
|
||||||
|
params = {
|
||||||
|
"class": "lightbox lightbox-feedback lightbox-generic-form"
|
||||||
|
}
|
||||||
|
expect(mocks.tgLightboxFactory.create.calledWith("tg-lb-feedback", params)).to.be.true()
|
|
@ -1,4 +1,4 @@
|
||||||
describe "homeDirective", () ->
|
describe "dutyDirective", () ->
|
||||||
scope = compile = provide = null
|
scope = compile = provide = null
|
||||||
mockTgProjectsService = null
|
mockTgProjectsService = null
|
||||||
mockTgNavUrls = null
|
mockTgNavUrls = null
|
||||||
|
@ -47,7 +47,7 @@ describe "homeDirective", () ->
|
||||||
scope = $rootScope.$new()
|
scope = $rootScope.$new()
|
||||||
compile = $compile
|
compile = $compile
|
||||||
|
|
||||||
it "duty directive content", () ->
|
it "duty directive scope content", () ->
|
||||||
scope.duty = {
|
scope.duty = {
|
||||||
project: 1
|
project: 1
|
||||||
ref: 1
|
ref: 1
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
describe "homeProjectListDirective", () ->
|
||||||
|
scope = compile = provide = null
|
||||||
|
mockTgProjectsService = null
|
||||||
|
template = "<div tg-home-project-list></div>"
|
||||||
|
recents = []
|
||||||
|
|
||||||
|
createDirective = () ->
|
||||||
|
elm = compile(template)(scope)
|
||||||
|
return elm
|
||||||
|
|
||||||
|
_mockTgProjectsService = () ->
|
||||||
|
mockTgProjectsService = {
|
||||||
|
newProject: sinon.stub()
|
||||||
|
projects: {
|
||||||
|
get: sinon.stub()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
provide.value "tgProjectsService", mockTgProjectsService
|
||||||
|
|
||||||
|
_mockTranslateFilter = () ->
|
||||||
|
mockTranslateFilter = (value) ->
|
||||||
|
return value
|
||||||
|
provide.value "translateFilter", mockTranslateFilter
|
||||||
|
|
||||||
|
_mocks = () ->
|
||||||
|
module ($provide) ->
|
||||||
|
provide = $provide
|
||||||
|
_mockTgProjectsService()
|
||||||
|
_mockTranslateFilter()
|
||||||
|
return null
|
||||||
|
|
||||||
|
beforeEach ->
|
||||||
|
module "templates"
|
||||||
|
module "taigaHome"
|
||||||
|
|
||||||
|
_mocks()
|
||||||
|
|
||||||
|
inject ($rootScope, $compile) ->
|
||||||
|
scope = $rootScope.$new()
|
||||||
|
compile = $compile
|
||||||
|
|
||||||
|
recents = Immutable.fromJS([
|
||||||
|
{
|
||||||
|
id:1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
|
it "home project list directive scope content", () ->
|
||||||
|
mockTgProjectsService.projects.get
|
||||||
|
.withArgs("recents")
|
||||||
|
.returns(recents)
|
||||||
|
|
||||||
|
elm = createDirective()
|
||||||
|
scope.$apply()
|
||||||
|
expect(elm.isolateScope().vm.projects.size).to.be.equal(2)
|
||||||
|
|
||||||
|
it "home project list directive newProject", () ->
|
||||||
|
elm = createDirective()
|
||||||
|
scope.$apply()
|
||||||
|
expect(mockTgProjectsService.newProject.callCount).to.be.equal(0)
|
||||||
|
elm.isolateScope().vm.newProject()
|
||||||
|
expect(mockTgProjectsService.newProject.callCount).to.be.equal(1)
|
|
@ -0,0 +1,58 @@
|
||||||
|
describe "dropdownProjectListDirective", () ->
|
||||||
|
scope = compile = provide = null
|
||||||
|
mockTgProjectsService = null
|
||||||
|
template = "<div tg-dropdown-project-list></div>"
|
||||||
|
recents = []
|
||||||
|
|
||||||
|
createDirective = () ->
|
||||||
|
elm = compile(template)(scope)
|
||||||
|
return elm
|
||||||
|
|
||||||
|
_mockTgProjectsService = () ->
|
||||||
|
mockTgProjectsService = {
|
||||||
|
newProject: sinon.stub()
|
||||||
|
projects: {
|
||||||
|
get: sinon.stub()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
provide.value "tgProjectsService", mockTgProjectsService
|
||||||
|
|
||||||
|
_mockTranslateFilter = () ->
|
||||||
|
mockTranslateFilter = (value) ->
|
||||||
|
return value
|
||||||
|
provide.value "translateFilter", mockTranslateFilter
|
||||||
|
|
||||||
|
_mocks = () ->
|
||||||
|
module ($provide) ->
|
||||||
|
provide = $provide
|
||||||
|
_mockTgProjectsService()
|
||||||
|
_mockTranslateFilter()
|
||||||
|
return null
|
||||||
|
|
||||||
|
beforeEach ->
|
||||||
|
module "templates"
|
||||||
|
module "taigaNavigationBar"
|
||||||
|
|
||||||
|
_mocks()
|
||||||
|
|
||||||
|
inject ($rootScope, $compile) ->
|
||||||
|
scope = $rootScope.$new()
|
||||||
|
compile = $compile
|
||||||
|
|
||||||
|
recents = Immutable.fromJS([
|
||||||
|
{
|
||||||
|
id:1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
|
it "dropdown project list directive scope content", () ->
|
||||||
|
mockTgProjectsService.projects.get
|
||||||
|
.withArgs("recents")
|
||||||
|
.returns(recents)
|
||||||
|
|
||||||
|
elm = createDirective()
|
||||||
|
scope.$apply()
|
||||||
|
expect(elm.isolateScope().vm.projects.size).to.be.equal(2)
|
|
@ -0,0 +1,99 @@
|
||||||
|
describe "dropdownUserDirective", () ->
|
||||||
|
scope = compile = provide = null
|
||||||
|
mockTgAuth = null
|
||||||
|
mockTgConfig = null
|
||||||
|
mockTgLocation = null
|
||||||
|
mockTgNavUrls = null
|
||||||
|
mockTgFeedbackService = null
|
||||||
|
template = "<div tg-dropdown-user></div>"
|
||||||
|
|
||||||
|
createDirective = () ->
|
||||||
|
elm = compile(template)(scope)
|
||||||
|
return elm
|
||||||
|
|
||||||
|
_mockTranslateFilter = () ->
|
||||||
|
mockTranslateFilter = (value) ->
|
||||||
|
return value
|
||||||
|
provide.value "translateFilter", mockTranslateFilter
|
||||||
|
|
||||||
|
_mockTgAuth = () ->
|
||||||
|
mockTgAuth = {
|
||||||
|
getUser: sinon.stub()
|
||||||
|
logout: sinon.stub()
|
||||||
|
}
|
||||||
|
provide.value "$tgAuth", mockTgAuth
|
||||||
|
|
||||||
|
_mockTgConfig = () ->
|
||||||
|
mockTgConfig = {
|
||||||
|
get: sinon.stub()
|
||||||
|
}
|
||||||
|
provide.value "$tgConfig", mockTgConfig
|
||||||
|
|
||||||
|
_mockTgLocation = () ->
|
||||||
|
mockTgLocation = {
|
||||||
|
path: sinon.stub()
|
||||||
|
}
|
||||||
|
provide.value "$tgLocation", mockTgLocation
|
||||||
|
|
||||||
|
_mockTgNavUrls = () ->
|
||||||
|
mockTgNavUrls = {
|
||||||
|
resolve: sinon.stub()
|
||||||
|
}
|
||||||
|
provide.value "$tgNavUrls", mockTgNavUrls
|
||||||
|
|
||||||
|
_mockTgFeedbackService = () ->
|
||||||
|
mockTgFeedbackService = {
|
||||||
|
sendFeedback: sinon.stub()
|
||||||
|
}
|
||||||
|
provide.value "tgFeedbackService", mockTgFeedbackService
|
||||||
|
|
||||||
|
_mocks = () ->
|
||||||
|
module ($provide) ->
|
||||||
|
provide = $provide
|
||||||
|
_mockTranslateFilter()
|
||||||
|
_mockTgAuth()
|
||||||
|
_mockTgConfig()
|
||||||
|
_mockTgLocation()
|
||||||
|
_mockTgNavUrls()
|
||||||
|
_mockTgFeedbackService()
|
||||||
|
return null
|
||||||
|
|
||||||
|
beforeEach ->
|
||||||
|
module "templates"
|
||||||
|
module "taigaNavigationBar"
|
||||||
|
|
||||||
|
_mocks()
|
||||||
|
|
||||||
|
inject ($rootScope, $compile) ->
|
||||||
|
scope = $rootScope.$new()
|
||||||
|
compile = $compile
|
||||||
|
|
||||||
|
it "dropdown user directive scope content", () ->
|
||||||
|
mockTgAuth.getUser.withArgs().returns({id: 66})
|
||||||
|
mockTgConfig.get.withArgs("feedbackEnabled").returns(true)
|
||||||
|
elm = createDirective()
|
||||||
|
scope.$apply()
|
||||||
|
|
||||||
|
vm = elm.isolateScope().vm
|
||||||
|
expect(vm.user.id).to.be.equal(66)
|
||||||
|
expect(vm.isFeedbackEnabled).to.be.equal(true)
|
||||||
|
|
||||||
|
it "dropdown user log out", () ->
|
||||||
|
mockTgNavUrls.resolve.withArgs("login").returns("/login")
|
||||||
|
elm = createDirective()
|
||||||
|
scope.$apply()
|
||||||
|
vm = elm.isolateScope().vm
|
||||||
|
expect(mockTgAuth.logout.callCount).to.be.equal(0)
|
||||||
|
expect(mockTgLocation.path.callCount).to.be.equal(0)
|
||||||
|
vm.logout()
|
||||||
|
expect(mockTgAuth.logout.callCount).to.be.equal(1)
|
||||||
|
expect(mockTgLocation.path.callCount).to.be.equal(1)
|
||||||
|
expect(mockTgLocation.path.calledWith("/login")).to.be.true()
|
||||||
|
|
||||||
|
it "dropdown user send feedback", () ->
|
||||||
|
elm = createDirective()
|
||||||
|
scope.$apply()
|
||||||
|
vm = elm.isolateScope().vm
|
||||||
|
expect(mockTgFeedbackService.sendFeedback.callCount).to.be.equal(0)
|
||||||
|
vm.sendFeedback()
|
||||||
|
expect(mockTgFeedbackService.sendFeedback.callCount).to.be.equal(1)
|
|
@ -0,0 +1,66 @@
|
||||||
|
describe "navigationBarDirective", () ->
|
||||||
|
scope = compile = provide = null
|
||||||
|
mockTgProjectsService = null
|
||||||
|
template = "<div tg-navigation-bar></div>"
|
||||||
|
recents = []
|
||||||
|
|
||||||
|
createDirective = () ->
|
||||||
|
elm = compile(template)(scope)
|
||||||
|
return elm
|
||||||
|
|
||||||
|
_mockTgProjectsService = () ->
|
||||||
|
mockTgProjectsService = {
|
||||||
|
newProject: sinon.stub()
|
||||||
|
projects: {
|
||||||
|
get: sinon.stub()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
provide.value "tgProjectsService", mockTgProjectsService
|
||||||
|
|
||||||
|
_mockTranslateFilter = () ->
|
||||||
|
mockTranslateFilter = (value) ->
|
||||||
|
return value
|
||||||
|
provide.value "translateFilter", mockTranslateFilter
|
||||||
|
|
||||||
|
_mockTgDropdownProjectListDirective = () ->
|
||||||
|
provide.factory 'tgDropdownProjectListDirective', () -> {}
|
||||||
|
|
||||||
|
_mockTgDropdownUserDirective = () ->
|
||||||
|
provide.factory 'tgDropdownUserDirective', () -> {}
|
||||||
|
|
||||||
|
_mocks = () ->
|
||||||
|
module ($provide) ->
|
||||||
|
provide = $provide
|
||||||
|
_mockTgProjectsService()
|
||||||
|
_mockTranslateFilter()
|
||||||
|
_mockTgDropdownProjectListDirective()
|
||||||
|
_mockTgDropdownUserDirective()
|
||||||
|
return null
|
||||||
|
|
||||||
|
beforeEach ->
|
||||||
|
module "templates"
|
||||||
|
module "taigaNavigationBar"
|
||||||
|
|
||||||
|
_mocks()
|
||||||
|
|
||||||
|
inject ($rootScope, $compile) ->
|
||||||
|
scope = $rootScope.$new()
|
||||||
|
compile = $compile
|
||||||
|
|
||||||
|
recents = Immutable.fromJS([
|
||||||
|
{
|
||||||
|
id:1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
|
it "navigation bar directive scope content", () ->
|
||||||
|
mockTgProjectsService.projects.get
|
||||||
|
.withArgs("recents")
|
||||||
|
.returns(recents)
|
||||||
|
|
||||||
|
elm = createDirective()
|
||||||
|
scope.$apply()
|
||||||
|
expect(elm.isolateScope().vm.projects.size).to.be.equal(2)
|
|
@ -24,9 +24,6 @@ class ProjectsService extends taiga.Service
|
||||||
_.map projects, (project) =>
|
_.map projects, (project) =>
|
||||||
project.url = @projectUrl.get(project)
|
project.url = @projectUrl.get(project)
|
||||||
|
|
||||||
|
|
||||||
console.log project.memberships
|
|
||||||
|
|
||||||
project.colorized_tags = []
|
project.colorized_tags = []
|
||||||
|
|
||||||
if project.tags
|
if project.tags
|
||||||
|
|
Loading…
Reference in New Issue