Skip to content
This repository was archived by the owner on Aug 17, 2021. It is now read-only.

Commit 7bdc4ac

Browse files
committed
Added missing tests
1 parent ba287ea commit 7bdc4ac

File tree

3 files changed

+133
-0
lines changed

3 files changed

+133
-0
lines changed

tests/provider.driver.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
function ProviderDriver() {
2+
var _this = this;
3+
var mockModules = {
4+
$window: {}
5+
};
6+
7+
module(mockModules); // mock all the properties
8+
9+
this.given = {
10+
recaptchaLoaded: function (recaptchaMock) {
11+
mockModules.$window.grecaptcha = recaptchaMock;
12+
return _this;
13+
}
14+
};
15+
16+
this.when = {
17+
created: function () {
18+
module(function (vcRecaptchaServiceProvider) {
19+
_this.provider = vcRecaptchaServiceProvider;
20+
});
21+
22+
inject(); // needed for angular-mocks to kick off
23+
24+
return _this;
25+
},
26+
callingCreate: function () {
27+
inject(function (vcRecaptchaService, $rootScope) {
28+
vcRecaptchaService.create(null, {});
29+
$rootScope.$digest();
30+
});
31+
32+
return this;
33+
}
34+
};
35+
}

tests/provider_test.js

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
describe('provider', function () {
2+
'use strict';
3+
4+
var driver,
5+
recaptchaMock,
6+
key;
7+
8+
beforeEach(module('vcRecaptcha'));
9+
10+
beforeEach(function () {
11+
driver = new ProviderDriver();
12+
driver.given.recaptchaLoaded(recaptchaMock = jasmine.createSpyObj('recaptchaMock', ['render']))
13+
.when.created();
14+
15+
driver.provider.setSiteKey(key = '1234567890123456789012345678901234567890');
16+
});
17+
18+
it('should setDefaults', function () {
19+
var modifiedKey = key.substring(0, 39) + 'x';
20+
21+
driver.provider.setDefaults({key: modifiedKey});
22+
23+
driver.when.callingCreate();
24+
25+
var callArgs = recaptchaMock.render.calls.mostRecent().args[1];
26+
27+
expect(callArgs).toEqual(jasmine.objectContaining({sitekey: modifiedKey}));
28+
});
29+
30+
it('should setSiteKey', function () {
31+
driver.provider.setSiteKey(key);
32+
33+
driver.when.callingCreate();
34+
35+
var callArgs = recaptchaMock.render.calls.mostRecent().args[1];
36+
37+
expect(callArgs).toEqual(jasmine.objectContaining({sitekey: key}));
38+
});
39+
40+
it('should setTheme', function () {
41+
var theme = 'theme';
42+
driver.provider.setTheme(theme);
43+
44+
driver.when.callingCreate();
45+
46+
var callArgs = recaptchaMock.render.calls.mostRecent().args[1];
47+
48+
expect(callArgs).toEqual(jasmine.objectContaining({theme: theme}));
49+
});
50+
51+
it('should setStoken', function () {
52+
var stoken = 'stoken';
53+
driver.provider.setStoken(stoken);
54+
55+
driver.when.callingCreate();
56+
57+
var callArgs = recaptchaMock.render.calls.mostRecent().args[1];
58+
59+
expect(callArgs).toEqual(jasmine.objectContaining({stoken: stoken}));
60+
});
61+
62+
it('should setSize', function () {
63+
var size = 'size';
64+
driver.provider.setSize(size);
65+
66+
driver.when.callingCreate();
67+
68+
var callArgs = recaptchaMock.render.calls.mostRecent().args[1];
69+
70+
expect(callArgs).toEqual(jasmine.objectContaining({size: size}));
71+
});
72+
73+
it('should setType', function () {
74+
var type = 'type';
75+
driver.provider.setType(type);
76+
77+
driver.when.callingCreate();
78+
79+
var callArgs = recaptchaMock.render.calls.mostRecent().args[1];
80+
81+
expect(callArgs).toEqual(jasmine.objectContaining({type: type}));
82+
});
83+
84+
it('should setLang', function () {
85+
var lang = 'en';
86+
driver.provider.setLang(lang);
87+
88+
driver.when.callingCreate();
89+
90+
var callArgs = recaptchaMock.render.calls.mostRecent().args[1];
91+
92+
expect(callArgs).toEqual(jasmine.objectContaining({hl: lang}));
93+
});
94+
});

tests/service_test.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,5 +117,9 @@ describe('service', function () {
117117
it('should add callback function name to src', function () {
118118
expect(scriptTagSpy.src).toBe('https://www.google.com/recaptcha/api.js?onload=' + funcName + '&render=explicit');
119119
});
120+
121+
it('should validate that recaptcha is loaded', function () {
122+
expect(driver.service.reload).toThrowError('reCaptcha has not been loaded yet.');
123+
});
120124
});
121125
});

0 commit comments

Comments
 (0)