Fix create-epic lightbox tests
parent
f0a6ab4c0b
commit
547b5c6458
|
@ -57,6 +57,8 @@ class CreateEpicController
|
||||||
promise.finally () =>
|
promise.finally () =>
|
||||||
@.loading = false
|
@.loading = false
|
||||||
|
|
||||||
|
return promise
|
||||||
|
|
||||||
# Color selector
|
# Color selector
|
||||||
selectColor: (color) ->
|
selectColor: (color) ->
|
||||||
@.newEpic.color = color
|
@.newEpic.color = color
|
||||||
|
@ -76,8 +78,8 @@ class CreateEpicController
|
||||||
@.attachments.push(attachment)
|
@.attachments.push(attachment)
|
||||||
|
|
||||||
_createAttachments: (epic) ->
|
_createAttachments: (epic) ->
|
||||||
promises = _.map @.attachments.toJS(), (attachment) ->
|
promises = _.map @.attachments.toJS(), (attachment) =>
|
||||||
return attachmentsService.upload(attachment.file, epic.id, epic.project, 'epic')
|
return @attachmentsService.upload(attachment.file, epic.id, epic.project, 'epic')
|
||||||
return @q.all(promises)
|
return @q.all(promises)
|
||||||
|
|
||||||
angular.module("taigaEpics").controller("CreateEpicCtrl", CreateEpicController)
|
angular.module("taigaEpics").controller("CreateEpicCtrl", CreateEpicController)
|
||||||
|
|
|
@ -32,11 +32,33 @@ describe "EpicRow", ->
|
||||||
|
|
||||||
provide.value "tgResources", mocks.tgResources
|
provide.value "tgResources", mocks.tgResources
|
||||||
|
|
||||||
|
_mockTgConfirm = () ->
|
||||||
|
mocks.tgConfirm = {
|
||||||
|
notify: sinon.stub()
|
||||||
|
}
|
||||||
|
provide.value "$tgConfirm", mocks.tgConfirm
|
||||||
|
|
||||||
|
_mockTgAttachmentsService = () ->
|
||||||
|
mocks.tgAttachmentsService = {
|
||||||
|
upload: sinon.stub()
|
||||||
|
}
|
||||||
|
provide.value "tgAttachmentsService", mocks.tgAttachmentsService
|
||||||
|
|
||||||
|
_mockQ = () ->
|
||||||
|
mocks.q = {
|
||||||
|
all: sinon.spy()
|
||||||
|
}
|
||||||
|
|
||||||
|
provide.value "$q", mocks.q
|
||||||
|
|
||||||
|
|
||||||
_mocks = () ->
|
_mocks = () ->
|
||||||
module ($provide) ->
|
module ($provide) ->
|
||||||
provide = $provide
|
provide = $provide
|
||||||
_mockTgResources()
|
_mockTgResources()
|
||||||
|
_mockTgConfirm()
|
||||||
|
_mockTgAttachmentsService()
|
||||||
|
_mockQ()
|
||||||
return null
|
return null
|
||||||
|
|
||||||
beforeEach ->
|
beforeEach ->
|
||||||
|
@ -47,17 +69,65 @@ describe "EpicRow", ->
|
||||||
inject ($controller) ->
|
inject ($controller) ->
|
||||||
controller = $controller
|
controller = $controller
|
||||||
|
|
||||||
it "create Epic", (done) ->
|
it "create Epic with invalid form", () ->
|
||||||
createEpicCtrl = controller "CreateEpicCtrl"
|
data = {
|
||||||
createEpicCtrl.project = {
|
project: {id: 1, default_epic_status: 1}
|
||||||
id: 7
|
validateForm: sinon.stub()
|
||||||
|
setFormErrors: sinon.stub()
|
||||||
|
onCreateEpic: sinon.stub()
|
||||||
}
|
}
|
||||||
createEpicCtrl.newEpic = {
|
createEpicCtrl = controller "CreateEpicCtrl", null, data
|
||||||
project: createEpicCtrl.project.id
|
createEpicCtrl.attachments = Immutable.List([{file: "file1"}, {file: "file2"}])
|
||||||
|
|
||||||
|
data.validateForm.withArgs().returns(false)
|
||||||
|
|
||||||
|
createEpicCtrl.createEpic()
|
||||||
|
|
||||||
|
expect(data.validateForm).have.been.called
|
||||||
|
expect(mocks.tgResources.epics.post).not.have.been.called
|
||||||
|
|
||||||
|
it "create Epic successfully", (done) ->
|
||||||
|
data = {
|
||||||
|
project: {id: 1, default_epic_status: 1}
|
||||||
|
validateForm: sinon.stub()
|
||||||
|
setFormErrors: sinon.stub()
|
||||||
|
onCreateEpic: sinon.stub()
|
||||||
}
|
}
|
||||||
createEpicCtrl.onReloadEpics = sinon.stub()
|
createEpicCtrl = controller "CreateEpicCtrl", null, data
|
||||||
promise = mocks.tgResources.epics.post.withArgs(createEpicCtrl.newEpic).promise().resolve()
|
createEpicCtrl.attachments = Immutable.List([{file: "file1"}, {file: "file2"}])
|
||||||
|
|
||||||
|
data.validateForm.withArgs().returns(true)
|
||||||
|
mocks.tgResources.epics.post.withArgs(createEpicCtrl.newEpic).promise().resolve(
|
||||||
|
{data: {id: 1, project: 1}}
|
||||||
|
)
|
||||||
|
|
||||||
createEpicCtrl.createEpic().then () ->
|
createEpicCtrl.createEpic().then () ->
|
||||||
expect(createEpicCtrl.onReloadEpics).have.been.called
|
expect(data.validateForm).have.been.called
|
||||||
|
expect(mocks.tgAttachmentsService.upload).have.been.calledTwice
|
||||||
|
expect(createEpicCtrl.onCreateEpic).have.been.called
|
||||||
done()
|
done()
|
||||||
|
|
||||||
|
# TODO: Talk with JuanFran. How to return a response with an object when a promise is rejected?
|
||||||
|
# reject_response = {data: {_error_message: "error"}}
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#it "create Epic with an API error", (done) ->
|
||||||
|
# data = {
|
||||||
|
# project: {id: 1, default_epic_status: 1}
|
||||||
|
# validateForm: sinon.stub()
|
||||||
|
# setFormErrors: sinon.stub()
|
||||||
|
# onCreateEpic: sinon.stub()
|
||||||
|
# }
|
||||||
|
# createEpicCtrl = controller "CreateEpicCtrl", null, data
|
||||||
|
# createEpicCtrl.attachments = Immutable.List([{file: "file1"}, {file: "file2"}])
|
||||||
|
|
||||||
|
# data.validateForm.withArgs().returns(true)
|
||||||
|
# mocks.tgResources.epics.post.withArgs(createEpicCtrl.newEpic).promise().reject(new Error("error"))
|
||||||
|
|
||||||
|
# createEpicCtrl.createEpic().then () ->
|
||||||
|
# expect(data.validateForm).have.been.called
|
||||||
|
# expect(mocks.tgAttachmentsService.upload).not.have.been.called
|
||||||
|
# expect(createEpicCtrl.onCreateEpic).not.have.been.called
|
||||||
|
# expect(data.setFormErrors).have.been.called
|
||||||
|
# expect(mocks.tgConfirm.notify).have.been.called
|
||||||
|
# done()
|
||||||
|
|
Loading…
Reference in New Issue