Fix create-epic lightbox tests
parent
f0a6ab4c0b
commit
547b5c6458
|
@ -57,6 +57,8 @@ class CreateEpicController
|
|||
promise.finally () =>
|
||||
@.loading = false
|
||||
|
||||
return promise
|
||||
|
||||
# Color selector
|
||||
selectColor: (color) ->
|
||||
@.newEpic.color = color
|
||||
|
@ -76,8 +78,8 @@ class CreateEpicController
|
|||
@.attachments.push(attachment)
|
||||
|
||||
_createAttachments: (epic) ->
|
||||
promises = _.map @.attachments.toJS(), (attachment) ->
|
||||
return attachmentsService.upload(attachment.file, epic.id, epic.project, 'epic')
|
||||
promises = _.map @.attachments.toJS(), (attachment) =>
|
||||
return @attachmentsService.upload(attachment.file, epic.id, epic.project, 'epic')
|
||||
return @q.all(promises)
|
||||
|
||||
angular.module("taigaEpics").controller("CreateEpicCtrl", CreateEpicController)
|
||||
|
|
|
@ -32,11 +32,33 @@ describe "EpicRow", ->
|
|||
|
||||
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 = () ->
|
||||
module ($provide) ->
|
||||
provide = $provide
|
||||
_mockTgResources()
|
||||
|
||||
_mockTgConfirm()
|
||||
_mockTgAttachmentsService()
|
||||
_mockQ()
|
||||
return null
|
||||
|
||||
beforeEach ->
|
||||
|
@ -47,17 +69,65 @@ describe "EpicRow", ->
|
|||
inject ($controller) ->
|
||||
controller = $controller
|
||||
|
||||
it "create Epic", (done) ->
|
||||
createEpicCtrl = controller "CreateEpicCtrl"
|
||||
createEpicCtrl.project = {
|
||||
id: 7
|
||||
it "create Epic with invalid form", () ->
|
||||
data = {
|
||||
project: {id: 1, default_epic_status: 1}
|
||||
validateForm: sinon.stub()
|
||||
setFormErrors: sinon.stub()
|
||||
onCreateEpic: sinon.stub()
|
||||
}
|
||||
createEpicCtrl.newEpic = {
|
||||
project: createEpicCtrl.project.id
|
||||
createEpicCtrl = controller "CreateEpicCtrl", null, data
|
||||
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()
|
||||
promise = mocks.tgResources.epics.post.withArgs(createEpicCtrl.newEpic).promise().resolve()
|
||||
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().resolve(
|
||||
{data: {id: 1, project: 1}}
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
# 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