auth0-lock 15.0.0 → 15.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.github/workflows/codeql.yml +1 -1
  2. package/.github/workflows/npm-release.yml +1 -1
  3. package/.github/workflows/snyk.yml +1 -1
  4. package/.github/workflows/test.yml +2 -2
  5. package/.version +1 -1
  6. package/CHANGELOG.md +6 -0
  7. package/README.md +1 -1
  8. package/lib/__tests__/auth_button.js +21 -6
  9. package/lib/__tests__/connection/database/login_pane.js +12 -5
  10. package/lib/__tests__/connection/database/reset_password.js +15 -12
  11. package/lib/__tests__/connection/enterprise/hrd_pane.js +16 -6
  12. package/lib/__tests__/connection/enterprise/hrd_screen.js +27 -18
  13. package/lib/__tests__/connection/passwordless/ask_vcode.js +15 -7
  14. package/lib/__tests__/core/sso/last_login_screen.js +91 -40
  15. package/lib/__tests__/engine/classic/mfa_login_screen.js +9 -3
  16. package/lib/__tests__/engine/classic/sign_up_pane.js +16 -6
  17. package/lib/__tests__/engine/classic/sign_up_screen.js +0 -1
  18. package/lib/__tests__/field/captcha/arkose.js +7 -0
  19. package/lib/__tests__/field/captcha/auth0_v2.js +6 -0
  20. package/lib/__tests__/field/captcha/friendlyCaptcha.js +6 -0
  21. package/lib/__tests__/field/captcha/hcaptcha.js +6 -0
  22. package/lib/__tests__/field/captcha/recaptcha_enterprise.js +6 -0
  23. package/lib/__tests__/field/captcha/recaptchav2.js +6 -0
  24. package/lib/__tests__/field/captcha/third_party_captcha.js +97 -64
  25. package/lib/__tests__/field/captcha.js +76 -143
  26. package/lib/__tests__/field/custom_input.js +7 -5
  27. package/lib/__tests__/field/email_pane.js +27 -11
  28. package/lib/__tests__/field/login_pane.js +6 -3
  29. package/lib/__tests__/field/mfa_code_pane.js +13 -6
  30. package/lib/__tests__/field/option_selection_pane.js +17 -7
  31. package/lib/__tests__/field/password_pane.js +8 -10
  32. package/lib/__tests__/field/phone_number_pane.js +7 -5
  33. package/lib/__tests__/field/social_buttons_pane.js +12 -9
  34. package/lib/__tests__/field/username_pane.js +33 -14
  35. package/lib/__tests__/field/vcode_pane.js +9 -5
  36. package/lib/__tests__/setup-tests.js +1 -7
  37. package/lib/__tests__/testUtils.js +27 -42
  38. package/lib/__tests__/ui/box/global_message.js +75 -42
  39. package/lib/__tests__/ui/input/email_input.js +4 -4
  40. package/lib/__tests__/ui/input/password/password_strength.js +8 -7
  41. package/lib/__tests__/ui/input/password_input.js +18 -14
  42. package/lib/core/web_api/helper.js +1 -1
  43. package/lib/i18n.js +1 -1
  44. package/lib/lock.js +1 -1
  45. package/lib/passwordless.js +1 -1
  46. package/package.json +7 -7
@@ -1,11 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
- var _enzyme = require("enzyme");
4
+ var _react2 = require("@testing-library/react");
5
5
  var _immutable = _interopRequireDefault(require("immutable"));
6
6
  var _testUtils = require("testUtils");
7
7
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
8
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
9
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
10
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
11
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
12
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
13
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
14
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
9
15
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
10
16
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
11
17
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -20,6 +26,11 @@ var getComponent = function getComponent() {
20
26
  var screen = new LastLoginScreen();
21
27
  return screen.render();
22
28
  };
29
+ var renderAndGetProps = function renderAndGetProps(Component, props) {
30
+ var _render = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(Component, props)),
31
+ container = _render.container;
32
+ return (0, _testUtils.getMockProps)(container.querySelector('[data-__type="quick_auth_pane"]'));
33
+ };
23
34
  describe('LastLoginScreen', function () {
24
35
  beforeEach(function () {
25
36
  jest.resetModules();
@@ -57,7 +68,8 @@ describe('LastLoginScreen', function () {
57
68
  jest.mock('connection/social/index', function () {
58
69
  return {
59
70
  STRATEGIES: {
60
- twitter: 'Twitter'
71
+ twitter: 'Twitter',
72
+ 'this-strategy-exists': 'Test Strategy'
61
73
  },
62
74
  authButtonsTheme: function authButtonsTheme() {
63
75
  return {
@@ -92,52 +104,66 @@ describe('LastLoginScreen', function () {
92
104
  },
93
105
  model: 'model'
94
106
  };
95
- it('renders correctly', function () {
96
- var Component = getComponent();
97
- (0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)).toMatchSnapshot();
98
- });
99
- it('renders with custom connection theme', function () {
100
- require('connection/social/index').authButtonsTheme = function () {
101
- return {
102
- get: function get() {
103
- return _immutable.default.fromJS({
104
- primaryColor: 'primaryColor',
105
- foregroundColor: 'foregroundColor',
106
- icon: 'icon'
107
- });
108
- }
109
- };
110
- };
111
- var Component = getComponent();
112
- (0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)).toMatchSnapshot();
113
- });
114
107
  describe('renders correct icon', function () {
115
- var testStrategy = function testStrategy(strategy) {
116
- it("when strategy is ".concat(strategy), function () {
108
+ var testStrategyName = 'this-strategy-exists';
109
+ var EXPECTED_ICONS = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, testStrategyName, testStrategyName), 'google-apps', 'google-apps'), "adfs", 'windows'), "office365", 'windows'), "waad", 'windows'), 'some-other-strategy', 'auth0');
110
+ Object.entries(EXPECTED_ICONS).forEach(function (_ref) {
111
+ var _ref2 = _slicedToArray(_ref, 2),
112
+ strategy = _ref2[0],
113
+ expectedIcon = _ref2[1];
114
+ it("uses correct icon when strategy is ".concat(strategy), function () {
117
115
  require('core/sso/index').lastUsedConnection = function () {
118
116
  return _immutable.default.fromJS({
119
117
  strategy: strategy
120
118
  });
121
119
  };
122
120
  var Component = getComponent();
123
- (0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)).toMatchSnapshot();
121
+ var props = renderAndGetProps(Component, defaultProps);
122
+ expect(props.strategy).toBe(expectedIcon);
124
123
  });
125
- };
126
- var testStrategyName = 'this-strategy-exists';
127
- require('connection/social/index').STRATEGIES = _defineProperty({}, testStrategyName, 'Test Strategy');
128
- var strategies = [testStrategyName, 'google-apps', 'adfs', 'office365', 'waad', 'some-other-strategy'].forEach(testStrategy);
129
- it("when strategy is empty, use name instead", function () {
124
+ });
125
+ it('maps adfs/office365/waad to "windows" icon', function () {
126
+ require('core/sso/index').lastUsedConnection = function () {
127
+ return _immutable.default.fromJS({
128
+ strategy: 'adfs'
129
+ });
130
+ };
131
+ var Component = getComponent();
132
+ var props = renderAndGetProps(Component, defaultProps);
133
+ expect(props.strategy).toBe('windows');
134
+ });
135
+ it('uses connection name as icon for unknown strategy', function () {
136
+ require('core/sso/index').lastUsedConnection = function () {
137
+ return _immutable.default.fromJS({
138
+ strategy: 'unknown-strategy',
139
+ name: 'my-conn'
140
+ });
141
+ };
142
+ var Component = getComponent();
143
+ var props = renderAndGetProps(Component, defaultProps);
144
+ expect(props.strategy).toBe('auth0');
145
+ });
146
+ it('uses name as strategy when strategy field is empty', function () {
130
147
  require('core/sso/index').lastUsedConnection = function () {
131
148
  return _immutable.default.fromJS({
132
149
  name: testStrategyName
133
150
  });
134
151
  };
135
152
  var Component = getComponent();
136
- (0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)).toMatchSnapshot();
153
+ var props = renderAndGetProps(Component, defaultProps);
154
+ expect(props.strategy).toBe(testStrategyName);
137
155
  });
138
156
  });
139
157
  describe('renders correct buttonLabel', function () {
140
- it('uses SOCIAL_STRATEGY mapping when there is not a lastUsedUsername', function () {
158
+ it('uses lastUsedUsername when present', function () {
159
+ require('core/sso/index').lastUsedUsername = function () {
160
+ return 'lastUsedUsername';
161
+ };
162
+ var Component = getComponent();
163
+ var props = renderAndGetProps(Component, defaultProps);
164
+ expect(props.buttonLabel).toBe('lastUsedUsername');
165
+ });
166
+ it('uses SOCIAL_STRATEGY mapping when there is no lastUsedUsername', function () {
141
167
  require('core/sso/index').lastUsedConnection = function () {
142
168
  return {
143
169
  get: function get() {
@@ -149,21 +175,44 @@ describe('LastLoginScreen', function () {
149
175
  return undefined;
150
176
  };
151
177
  var Component = getComponent();
152
- (0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)).toMatchSnapshot();
178
+ var props = renderAndGetProps(Component, defaultProps);
179
+ expect(props.buttonLabel).toBe('Twitter');
153
180
  });
154
- it('uses lastUsedConnectionName when there is not a lastUsedUsername and no SOCIAL_STRATEGY mapping', function () {
181
+ it('uses lastUsedConnectionName when there is no lastUsedUsername and no SOCIAL_STRATEGY mapping', function () {
155
182
  require('core/sso/index').lastUsedUsername = function () {
156
183
  return undefined;
157
184
  };
158
185
  var Component = getComponent();
159
- (0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)).toMatchSnapshot();
186
+ var props = renderAndGetProps(Component, defaultProps);
187
+ expect(props.buttonLabel).toBe('lastUsedConnection');
188
+ });
189
+ });
190
+ describe('renders with custom connection theme', function () {
191
+ it('passes primaryColor and foregroundColor from theme', function () {
192
+ require('connection/social/index').authButtonsTheme = function () {
193
+ return {
194
+ get: function get() {
195
+ return _immutable.default.fromJS({
196
+ primaryColor: 'primaryColor',
197
+ foregroundColor: 'foregroundColor',
198
+ icon: 'icon'
199
+ });
200
+ }
201
+ };
202
+ };
203
+ var Component = getComponent();
204
+ var props = renderAndGetProps(Component, defaultProps);
205
+ expect(props.primaryColor).toBe('primaryColor');
206
+ expect(props.foregroundColor).toBe('foregroundColor');
207
+ expect(props.buttonIcon).toBe('icon');
160
208
  });
161
209
  });
162
210
  it('calls checkSession in the buttonClickHandler when outside of the universal login page', function () {
163
211
  (0, _testUtils.setURL)('https://other-url.auth0.com');
164
212
  var Component = getComponent();
165
- var wrapper = (0, _enzyme.mount)(/*#__PURE__*/_react.default.createElement(Component, defaultProps));
166
- var props = (0, _testUtils.extractPropsFromWrapper)(wrapper);
213
+ var _render2 = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)),
214
+ container = _render2.container;
215
+ var props = (0, _testUtils.extractPropsFromWrapper)(container, 'quick_auth_pane');
167
216
  props.buttonClickHandler();
168
217
  var mock = require('quick-auth/actions').checkSession.mock;
169
218
  expect(mock.calls.length).toBe(1);
@@ -174,8 +223,9 @@ describe('LastLoginScreen', function () {
174
223
  it('calls logIn in the buttonClickHandler when inside of the universal login page', function () {
175
224
  (0, _testUtils.setURL)('https://me.auth0.com');
176
225
  var Component = getComponent();
177
- var wrapper = (0, _enzyme.mount)(/*#__PURE__*/_react.default.createElement(Component, defaultProps));
178
- var props = (0, _testUtils.extractPropsFromWrapper)(wrapper);
226
+ var _render3 = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)),
227
+ container = _render3.container;
228
+ var props = (0, _testUtils.extractPropsFromWrapper)(container, 'quick_auth_pane');
179
229
  props.buttonClickHandler();
180
230
  var mock = require('quick-auth/actions').logIn.mock;
181
231
  expect(mock.calls.length).toBe(1);
@@ -185,8 +235,9 @@ describe('LastLoginScreen', function () {
185
235
  });
186
236
  it('calls skipQuickAuth in the alternativeClickHandler', function () {
187
237
  var Component = getComponent();
188
- var wrapper = (0, _enzyme.mount)(/*#__PURE__*/_react.default.createElement(Component, defaultProps));
189
- var props = (0, _testUtils.extractPropsFromWrapper)(wrapper);
238
+ var _render4 = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)),
239
+ container = _render4.container;
240
+ var props = (0, _testUtils.extractPropsFromWrapper)(container, 'quick_auth_pane');
190
241
  props.alternativeClickHandler();
191
242
  var mock = require('quick-auth/actions').skipQuickAuth.mock;
192
243
  expect(mock.calls.length).toBe(1);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
- var _enzyme = require("enzyme");
4
+ var _react2 = require("@testing-library/react");
5
5
  var _testUtils = require("testUtils");
6
6
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
7
7
  jest.mock('connection/database/mfa_pane', function () {
@@ -48,8 +48,14 @@ describe('MFALoginScreen', function () {
48
48
  },
49
49
  model: 'model'
50
50
  };
51
- it('renders correctly', function () {
51
+ it('passes i18n-derived props to MFAPane', function () {
52
52
  var Component = getComponent();
53
- (0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)).toMatchSnapshot();
53
+ var _render = (0, _react2.render)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)),
54
+ container = _render.container;
55
+ var props = (0, _testUtils.getMockProps)(container.querySelector('[data-__type="mfa_pane"]'));
56
+ expect(props.mfaInputPlaceholder).toBe('mfaInputPlaceholder');
57
+ expect(props.instructions).toBe('mfaLoginInstructions');
58
+ expect(props.title).toBe('mfaLoginTitle');
59
+ expect(props.lock).toBe('model');
54
60
  });
55
61
  });
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
+ var _immutable = _interopRequireDefault(require("immutable"));
4
5
  var _testUtils = require("testUtils");
5
- var _testUtils2 = require("../../testUtils");
6
6
  var _captcha = require("../../../connection/captcha");
7
7
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
8
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
@@ -20,7 +20,15 @@ jest.mock('field/custom_input', function () {
20
20
  });
21
21
  jest.mock('core/index', function () {
22
22
  return {
23
- signupCaptcha: jest.fn()
23
+ signupCaptcha: jest.fn(),
24
+ id: function id(m) {
25
+ return m && m.get ? m.get('id') : '__lock-id__';
26
+ },
27
+ ui: {
28
+ language: function language() {
29
+ return 'en';
30
+ }
31
+ }
24
32
  };
25
33
  });
26
34
  jest.mock('engine/classic', function () {
@@ -75,7 +83,9 @@ describe('SignUpPane', function () {
75
83
  }
76
84
  },
77
85
  flow: _captcha.Flow.SIGNUP,
78
- model: 'model',
86
+ model: _immutable.default.fromJS({
87
+ id: '__lock-id__'
88
+ }),
79
89
  emailInputPlaceholder: 'emailInputPlaceholder',
80
90
  onlyEmail: true,
81
91
  passwordInputPlaceholder: 'passwordInputPlaceholder',
@@ -101,7 +111,7 @@ describe('SignUpPane', function () {
101
111
  });
102
112
  require('engine/classic').isSSOEnabled.mockReturnValue(false);
103
113
  var Component = getComponent();
104
- (0, _testUtils2.expectShallowComponent)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)).toMatchSnapshot();
114
+ (0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)).toMatchSnapshot();
105
115
  });
106
116
  it('hides the Captcha pane for SSO connections', function () {
107
117
  require('core/index').signupCaptcha.mockReturnValue({
@@ -111,7 +121,7 @@ describe('SignUpPane', function () {
111
121
  });
112
122
  require('engine/classic').isSSOEnabled.mockReturnValue(true);
113
123
  var Component = getComponent();
114
- (0, _testUtils2.expectShallowComponent)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)).toMatchSnapshot();
124
+ (0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)).toMatchSnapshot();
115
125
  });
116
126
  it('shows the Captcha pane for SSO (ADFS) connections', function () {
117
127
  require('core/index').signupCaptcha.mockReturnValue({
@@ -122,7 +132,7 @@ describe('SignUpPane', function () {
122
132
  require('engine/classic').isSSOEnabled.mockReturnValue(true);
123
133
  require('connection/enterprise').isHRDDomain.mockReturnValue(true);
124
134
  var Component = getComponent();
125
- (0, _testUtils2.expectShallowComponent)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)).toMatchSnapshot();
135
+ (0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(Component, defaultProps)).toMatchSnapshot();
126
136
  });
127
137
  describe('onlyEmail is false', function () {
128
138
  it('shows PasswordPane', function () {
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
- var _enzyme = require("enzyme");
5
4
  var _testUtils = require("testUtils");
6
5
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
7
6
  jest.mock('engine/classic/sign_up_pane', function () {
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
+ var _react2 = require("@testing-library/react");
4
5
  var _testUtils = require("testUtils");
5
6
  var _third_party_captcha = require("../../../field/captcha/third_party_captcha");
6
7
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -21,6 +22,12 @@ describe('Arkose', function () {
21
22
  (0, _testUtils.expectComponent)(component).toMatchSnapshot();
22
23
  });
23
24
  it('injects the script', function () {
25
+ (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_third_party_captcha.ThirdPartyCaptcha, {
26
+ provider: 'arkose',
27
+ hl: "en",
28
+ sitekey: 'mySiteKey',
29
+ clientSubdomain: 'client-api'
30
+ }));
24
31
  var script = _toConsumableArray(window.document.querySelectorAll('script')).find(function (s) {
25
32
  return s.src.startsWith("https://client-api.arkoselabs.com/v2/mySiteKey/api.js");
26
33
  });
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
+ var _react2 = require("@testing-library/react");
4
5
  var _testUtils = require("testUtils");
5
6
  var _third_party_captcha = require("../../../field/captcha/third_party_captcha");
6
7
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -20,6 +21,11 @@ describe('Auth0 V2', function () {
20
21
  (0, _testUtils.expectComponent)(component).toMatchSnapshot();
21
22
  });
22
23
  it('injects the script', function () {
24
+ (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_third_party_captcha.ThirdPartyCaptcha, {
25
+ provider: 'auth0_v2',
26
+ hl: "en",
27
+ sitekey: 'mySiteKey'
28
+ }));
23
29
  var script = _toConsumableArray(window.document.querySelectorAll('script')).find(function (s) {
24
30
  return s.src.startsWith('https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit&onload=');
25
31
  });
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
+ var _react2 = require("@testing-library/react");
4
5
  var _testUtils = require("testUtils");
5
6
  var _third_party_captcha = require("../../../field/captcha/third_party_captcha");
6
7
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -20,6 +21,11 @@ describe('friendly captcha', function () {
20
21
  (0, _testUtils.expectComponent)(wrapper).toMatchSnapshot();
21
22
  });
22
23
  it('injects the script', function () {
24
+ (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_third_party_captcha.ThirdPartyCaptcha, {
25
+ provider: 'friendly_captcha',
26
+ hl: "en",
27
+ sitekey: 'mySiteKey'
28
+ }));
23
29
  var script = _toConsumableArray(window.document.querySelectorAll('script')).find(function (s) {
24
30
  return s.src.startsWith("https://cdn.jsdelivr.net/npm/friendly-challenge@0.9.12/widget.min.js");
25
31
  });
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
+ var _react2 = require("@testing-library/react");
4
5
  var _testUtils = require("testUtils");
5
6
  var _third_party_captcha = require("../../../field/captcha/third_party_captcha");
6
7
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -20,6 +21,11 @@ describe('hCaptcha', function () {
20
21
  (0, _testUtils.expectComponent)(component).toMatchSnapshot();
21
22
  });
22
23
  it('injects the script', function () {
24
+ (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_third_party_captcha.ThirdPartyCaptcha, {
25
+ provider: 'hcaptcha',
26
+ hl: "en",
27
+ sitekey: 'mySiteKey'
28
+ }));
23
29
  var script = _toConsumableArray(window.document.querySelectorAll('script')).find(function (s) {
24
30
  return s.src.startsWith("https://js.hcaptcha.com/1/api.js");
25
31
  });
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
+ var _react2 = require("@testing-library/react");
4
5
  var _testUtils = require("testUtils");
5
6
  var _third_party_captcha = require("../../../field/captcha/third_party_captcha");
6
7
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -20,6 +21,11 @@ describe('Recaptcha Enterprise', function () {
20
21
  (0, _testUtils.expectComponent)(component).toMatchSnapshot();
21
22
  });
22
23
  it('injects the script', function () {
24
+ (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_third_party_captcha.ThirdPartyCaptcha, {
25
+ provider: 'recaptcha_enterprise',
26
+ hl: "en",
27
+ sitekey: 'mySiteKey'
28
+ }));
23
29
  var script = _toConsumableArray(window.document.querySelectorAll('script')).find(function (s) {
24
30
  return s.src.startsWith("https://www.recaptcha.net/recaptcha/enterprise.js");
25
31
  });
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
+ var _react2 = require("@testing-library/react");
4
5
  var _testUtils = require("testUtils");
5
6
  var _third_party_captcha = require("../../../field/captcha/third_party_captcha");
6
7
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -20,6 +21,11 @@ describe('Recaptcha v2', function () {
20
21
  (0, _testUtils.expectComponent)(component).toMatchSnapshot();
21
22
  });
22
23
  it('injects the script', function () {
24
+ (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_third_party_captcha.ThirdPartyCaptcha, {
25
+ provider: 'recaptcha_v2',
26
+ hl: "en",
27
+ sitekey: 'mySiteKey'
28
+ }));
23
29
  var script = _toConsumableArray(window.document.querySelectorAll('script')).find(function (s) {
24
30
  return s.src.startsWith("https://www.recaptcha.net/recaptcha/api.js");
25
31
  });