handle project load error in the project home
parent
d7683879c1
commit
4f90941e36
|
@ -3,17 +3,21 @@ class ProjectController
|
||||||
"tgProjectsService",
|
"tgProjectsService",
|
||||||
"$routeParams",
|
"$routeParams",
|
||||||
"$appTitle",
|
"$appTitle",
|
||||||
"$tgAuth"
|
"$tgAuth",
|
||||||
|
"tgXhrErrorService"
|
||||||
]
|
]
|
||||||
|
|
||||||
constructor: (@projectsService, @routeParams, @appTitle, @auth) ->
|
constructor: (@projectsService, @routeParams, @appTitle, @auth, @xhrError) ->
|
||||||
projectSlug = @routeParams.pslug
|
projectSlug = @routeParams.pslug
|
||||||
@.user = @auth.userData
|
@.user = @auth.userData
|
||||||
|
|
||||||
@projectsService.getProjectBySlug(projectSlug)
|
@projectsService
|
||||||
|
.getProjectBySlug(projectSlug)
|
||||||
.then (project) =>
|
.then (project) =>
|
||||||
@appTitle.set(project.get("name"))
|
@appTitle.set(project.get("name"))
|
||||||
|
|
||||||
@.project = project
|
@.project = project
|
||||||
|
.catch (xhr) =>
|
||||||
|
@xhrError.response(xhr)
|
||||||
|
|
||||||
angular.module("taigaProjects").controller("Project", ProjectController)
|
angular.module("taigaProjects").controller("Project", ProjectController)
|
||||||
|
|
|
@ -31,6 +31,13 @@ describe "ProjectController", ->
|
||||||
pslug: "project-slug"
|
pslug: "project-slug"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_mockXhrErrorService = () ->
|
||||||
|
mocks.xhrErrorService = {
|
||||||
|
response: sinon.spy()
|
||||||
|
}
|
||||||
|
|
||||||
|
provide.value "tgXhrErrorService", mocks.xhrErrorService
|
||||||
|
|
||||||
_mocks = () ->
|
_mocks = () ->
|
||||||
module ($provide) ->
|
module ($provide) ->
|
||||||
provide = $provide
|
provide = $provide
|
||||||
|
@ -38,6 +45,7 @@ describe "ProjectController", ->
|
||||||
_mockRouteParams()
|
_mockRouteParams()
|
||||||
_mockAppTitle()
|
_mockAppTitle()
|
||||||
_mockAuth()
|
_mockAuth()
|
||||||
|
_mockXhrErrorService()
|
||||||
|
|
||||||
return null
|
return null
|
||||||
|
|
||||||
|
@ -53,48 +61,53 @@ describe "ProjectController", ->
|
||||||
_inject()
|
_inject()
|
||||||
|
|
||||||
it "set local user", () ->
|
it "set local user", () ->
|
||||||
thenStub = sinon.stub()
|
project = Immutable.fromJS({
|
||||||
|
name: "projectName"
|
||||||
mocks.projectService.getProjectBySlug.withArgs("project-slug").returns({
|
|
||||||
then: thenStub
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
mocks.projectService.getProjectBySlug.withArgs("project-slug").promise().resolve(project)
|
||||||
|
|
||||||
ctrl = $controller "Project",
|
ctrl = $controller "Project",
|
||||||
$scope: {}
|
$scope: {}
|
||||||
|
|
||||||
expect(ctrl.user).to.be.equal(mocks.auth.userData)
|
expect(ctrl.user).to.be.equal(mocks.auth.userData)
|
||||||
|
|
||||||
it "set page title", () ->
|
it "set page title", (done) ->
|
||||||
project = Immutable.fromJS({
|
project = Immutable.fromJS({
|
||||||
name: "projectName"
|
name: "projectName"
|
||||||
})
|
})
|
||||||
|
|
||||||
thenStub = sinon.stub()
|
mocks.projectService.getProjectBySlug.withArgs("project-slug").promise().resolve(project)
|
||||||
|
|
||||||
mocks.projectService.getProjectBySlug.withArgs("project-slug").returns({
|
|
||||||
then: thenStub
|
|
||||||
})
|
|
||||||
|
|
||||||
ctrl = $controller("Project")
|
ctrl = $controller("Project")
|
||||||
|
|
||||||
thenStub.callArg(0, project)
|
setTimeout ( ->
|
||||||
|
expect(mocks.appTitle.set.withArgs("projectName")).to.be.calledOnce
|
||||||
|
done()
|
||||||
|
)
|
||||||
|
|
||||||
expect(mocks.appTitle.set.withArgs("projectName")).to.be.calledOnce
|
it "set local project variable", (done) ->
|
||||||
|
|
||||||
|
|
||||||
it "set local project variable", () ->
|
|
||||||
project = Immutable.fromJS({
|
project = Immutable.fromJS({
|
||||||
name: "projectName"
|
name: "projectName"
|
||||||
})
|
})
|
||||||
|
|
||||||
thenStub = sinon.stub()
|
mocks.projectService.getProjectBySlug.withArgs("project-slug").promise().resolve(project)
|
||||||
|
|
||||||
mocks.projectService.getProjectBySlug.withArgs("project-slug").returns({
|
|
||||||
then: thenStub
|
|
||||||
})
|
|
||||||
|
|
||||||
ctrl = $controller("Project")
|
ctrl = $controller("Project")
|
||||||
|
|
||||||
thenStub.callArg(0, project)
|
setTimeout ( () ->
|
||||||
|
expect(ctrl.project).to.be.equal(project)
|
||||||
|
done()
|
||||||
|
)
|
||||||
|
|
||||||
expect(ctrl.project).to.be.equal(project)
|
it "handle project error", (done) ->
|
||||||
|
xhr = {code: 403}
|
||||||
|
|
||||||
|
mocks.projectService.getProjectBySlug.withArgs("project-slug").promise().reject(xhr)
|
||||||
|
|
||||||
|
ctrl = $controller("Project")
|
||||||
|
|
||||||
|
setTimeout (() ->
|
||||||
|
expect(mocks.xhrErrorService.response.withArgs(xhr)).to.be.calledOnce
|
||||||
|
done()
|
||||||
|
)
|
||||||
|
|
Loading…
Reference in New Issue