Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.

Commit 506b888

Browse files
author
vikasrohit
committed
AS#118090147171048, Mail chimp Integration
-- Fixed unit tests
1 parent 85b1be3 commit 506b888

File tree

1 file changed

+58
-2
lines changed

1 file changed

+58
-2
lines changed

app/skill-picker/skill-picker.spec.js

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ const mockData = require('../../tests/test-helpers/mock-data')
33

44
describe('Skill Picker Controller', function() {
55
var vm
6-
var toasterSvc, memberCertService, profileService, state
6+
var toasterSvc, memberCertService, profileService, mailchimpService, state
77
var mockProfile = mockData.getMockProfile()
88

99
beforeEach(function() {
1010
bard.appModule('tc.skill-picker')
11-
bard.inject(this, '$controller', '$rootScope', '$q', 'MemberCertService', 'ProfileService', 'toaster', 'CONSTANTS')
11+
bard.inject(this, '$controller', '$rootScope', '$q', 'MemberCertService', 'ProfileService', 'MailchimpService', 'toaster', 'CONSTANTS')
1212

1313
memberCertService = MemberCertService
1414
profileService = ProfileService
@@ -52,6 +52,29 @@ describe('Skill Picker Controller', function() {
5252
return deferred.promise
5353
})
5454

55+
mailchimpService = MailchimpService
56+
sinon.stub(mailchimpService, 'getMemberSubscription', function(user) {
57+
var deferred = $q.defer()
58+
if (user.userId === 10336829) {
59+
deferred.resolve()
60+
} else if (user.userId === 12345) {
61+
var resp = { id: 'sdku34i5kdk', email_address: user.email}
62+
deferred.resolve(resp)
63+
} else {
64+
deferred.reject()
65+
}
66+
return deferred.promise
67+
})
68+
sinon.stub(mailchimpService, 'addSubscription', function(user) {
69+
var deferred = $q.defer()
70+
if (user.userId === 10336829) {
71+
deferred.resolve()
72+
} else {
73+
deferred.reject()
74+
}
75+
return deferred.promise
76+
})
77+
5578
// mocks the toaster service
5679
toasterSvc = toaster
5780
bard.mockService(toaster, {
@@ -115,6 +138,39 @@ describe('Skill Picker Controller', function() {
115138
CONSTANTS.SWIFT_PROGRAM_ID = origSwiftProgId
116139
})
117140

141+
it('should call mailchimp service to add subscription', function() {
142+
expect(vm).to.exist
143+
// getMemberSubscription should always be called
144+
expect(mailchimpService.getMemberSubscription).to.be.calledOnce
145+
// addSubscription should be called once if not subscribed
146+
// getMemberSubscription service mock returns null for mockProfile.userId
147+
expect(mailchimpService.addSubscription).to.be.calledOnce
148+
})
149+
150+
it('should not call mailchimp service to add subscription', function() {
151+
// reset getMemberSubscription, addSubscription spy's called count
152+
mailchimpService.getMemberSubscription.reset()
153+
mailchimpService.addSubscription.reset()
154+
var scope = $rootScope.$new()
155+
156+
var profile = angular.copy(mockProfile)
157+
// update userId to return valid object in service mock
158+
profile.userId = 12345
159+
vm = $controller('SkillPickerController', {
160+
$scope: scope,
161+
userProfile: profile,
162+
featuredSkills: [],
163+
$state: state
164+
})
165+
$rootScope.$digest()
166+
expect(vm).to.exist
167+
// getMemberSubscription should always be called
168+
expect(mailchimpService.getMemberSubscription).to.be.calledOnce
169+
// addSubscription should not be called if already subscribed
170+
// getMemberSubscription service mock returns valid object for userId 12345
171+
expect(mailchimpService.addSubscription).not.to.be.called
172+
})
173+
118174
it('should add skill ', function() {
119175
vm.toggleSkill(409)
120176
expect(vm.mySkills).to.exist.have.length(1)

0 commit comments

Comments
 (0)