From 2e01cc8206eb80c1fb5df6216dcda3154c0533ff Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ren=C3=A9=20Olivo?= Date: Mon, 23 Apr 2018 19:54:34 -0400 Subject: [PATCH] Add tests for CaseTypeListCtrl's deleteCaseType method --- ang/crmCaseType.js | 1 - tests/karma/unit/crmCaseTypeSpec.js | 44 +++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/ang/crmCaseType.js b/ang/crmCaseType.js index e58f371943..2ae4b98b3f 100644 --- a/ang/crmCaseType.js +++ b/ang/crmCaseType.js @@ -377,7 +377,6 @@ }) .then(function (data) { delete caseTypes.values[caseType.id]; - $scope.$digest(); }); }; $scope.revertCaseType = function (caseType) { diff --git a/tests/karma/unit/crmCaseTypeSpec.js b/tests/karma/unit/crmCaseTypeSpec.js index 24004d4ea4..e6c8aa944f 100644 --- a/tests/karma/unit/crmCaseTypeSpec.js +++ b/tests/karma/unit/crmCaseTypeSpec.js @@ -347,5 +347,49 @@ describe('crmCaseType', function() { }); }); }); + + describe('deleteCaseType', function() { + var caseType = { id: _.uniqueId() }; + + beforeEach(function() { + crmApiSpy.and.returnValue($q.resolve(caseType)); + scope.caseTypes[caseType.id] = caseType; + + scope.deleteCaseType(caseType); + scope.$digest(); + }); + + describe('when the case type can be deleted', function() { + it('deletes the case from the api', function() { + expect(crmApiSpy).toHaveBeenCalledWith('CaseType', 'delete', { id: caseType.id }, jasmine.any(Object)); + }); + + it('removes the case type from the list', function() { + expect(scope.caseTypes[caseType.id]).toBeUndefined(); + }); + }); + + describe('when the case type cannot be delted', function() { + var error = { error_message: 'Error Message' }; + + beforeEach(function() { + var errorHandler; + + crmApiSpy.and.returnValue($q.reject(error)); + scope.caseTypes[caseType.id] = caseType; + + spyOn(CRM, 'alert'); + scope.deleteCaseType(caseType); + scope.$digest(); + + errorHandler = crmApiSpy.calls.mostRecent().args[3].error; + errorHandler(error); + }); + + it('displays the error message', function() { + expect(CRM.alert).toHaveBeenCalledWith(error.error_message, ts('Error'), 'error'); + }); + }); + }); }); }); -- 2.25.1