@kineticdata/react 5.1.1 → 6.0.0
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.
- package/assets/task/icons/drag-handle.svg +3 -0
- package/assets/task/icons/plus_small.svg +2 -4
- package/lib/apis/agent/adapters.js +16 -12
- package/lib/apis/agent/bridges.js +54 -41
- package/lib/apis/agent/handlers.js +51 -38
- package/lib/apis/core/activity.js +19 -11
- package/lib/apis/core/attributeDefinitions.js +54 -46
- package/lib/apis/core/attributeDefinitions.test.js +47 -55
- package/lib/apis/core/authentication.js +58 -63
- package/lib/apis/core/backgroundJobs.js +38 -30
- package/lib/apis/core/bridgeModelAttributeMappings.js +42 -34
- package/lib/apis/core/bridgeModelAttributes.js +47 -37
- package/lib/apis/core/bridgeModelMappings.js +42 -34
- package/lib/apis/core/bridgeModelQualificationMappings.js +42 -34
- package/lib/apis/core/bridgeModelQualifications.js +42 -34
- package/lib/apis/core/bridgeModels.js +61 -45
- package/lib/apis/core/bridgeModels.test.js +64 -80
- package/lib/apis/core/bridgedresources.js +64 -71
- package/lib/apis/core/bridgedresources.test.js +34 -31
- package/lib/apis/core/categories.js +59 -52
- package/lib/apis/core/categories.test.js +36 -33
- package/lib/apis/core/fileResources.js +41 -33
- package/lib/apis/core/filestores.js +42 -34
- package/lib/apis/core/formTypes.js +50 -44
- package/lib/apis/core/forms.js +53 -48
- package/lib/apis/core/forms.test.js +60 -74
- package/lib/apis/core/kapps.js +45 -39
- package/lib/apis/core/kapps.test.js +45 -52
- package/lib/apis/core/logs.js +20 -16
- package/lib/apis/core/memberships.js +23 -20
- package/lib/apis/core/meta.js +31 -19
- package/lib/apis/core/notices.js +17 -9
- package/lib/apis/core/oauthClients.js +49 -45
- package/lib/apis/core/platformComponents.js +73 -57
- package/lib/apis/core/platformItems.js +30 -0
- package/lib/apis/core/profile.js +28 -21
- package/lib/apis/core/profile.test.js +20 -17
- package/lib/apis/core/securityPolicyDefinitions.js +48 -41
- package/lib/apis/core/securityPolicyDefinitions.test.js +50 -60
- package/lib/apis/core/space.js +23 -16
- package/lib/apis/core/space.test.js +31 -38
- package/lib/apis/core/submissions.js +220 -172
- package/lib/apis/core/submissions.test.js +81 -51
- package/lib/apis/core/teams.js +51 -44
- package/lib/apis/core/teams.test.js +42 -39
- package/lib/apis/core/translations.js +123 -130
- package/lib/apis/core/translations.test.js +278 -368
- package/lib/apis/core/users.js +56 -49
- package/lib/apis/core/users.test.js +42 -39
- package/lib/apis/core/version.js +20 -11
- package/lib/apis/core/webApis.js +42 -34
- package/lib/apis/core/webhooks.js +48 -41
- package/lib/apis/core/webhooks.test.js +50 -60
- package/lib/apis/core/webhooksJobs.js +30 -26
- package/lib/apis/core/workflows.js +64 -0
- package/lib/apis/http.js +89 -80
- package/lib/apis/http.test.js +37 -38
- package/lib/apis/index.js +506 -48
- package/lib/apis/system/index.js +228 -211
- package/lib/apis/task/index.js +283 -226
- package/lib/components/agent/bridge/BridgeForm.js +50 -50
- package/lib/components/agent/bridge/BridgeTable.js +12 -8
- package/lib/components/agent/filestore/FilestoreForm.js +49 -48
- package/lib/components/agent/filestore/FilestoreTable.js +12 -8
- package/lib/components/agent/handler/AgentHandlerForm.js +24 -27
- package/lib/components/agent/handler/AgentHandlerTable.js +12 -8
- package/lib/components/common/AttributeSelect.js +15 -9
- package/lib/components/common/BridgeSelect.js +48 -43
- package/lib/components/common/ComponentConfigContext.js +9 -2
- package/lib/components/common/ContentEditable.js +36 -60
- package/lib/components/common/FormSelect.js +70 -58
- package/lib/components/common/NodeSelect.js +23 -19
- package/lib/components/common/Scroller.js +24 -23
- package/lib/components/common/StaticSelect.js +57 -50
- package/lib/components/common/TableInput.js +54 -57
- package/lib/components/common/TeamSelect.js +42 -39
- package/lib/components/common/Typeahead.js +121 -138
- package/lib/components/common/UserSelect.js +42 -41
- package/lib/components/common/authentication/AuthInterceptor.js +15 -19
- package/lib/components/common/authentication/AuthInterceptor.test.js +46 -64
- package/lib/components/common/authentication/AuthenticationContainer.js +350 -454
- package/lib/components/common/authentication/RequestInterceptor.js +16 -19
- package/lib/components/common/code_input/CodeInput.js +92 -122
- package/lib/components/common/code_input/draftHelpers.js +96 -90
- package/lib/components/common/code_input/languageHelpers.js +49 -47
- package/lib/components/common/code_input/languageHelpers.test.js +21 -16
- package/lib/components/core/CoreFormModal.js +26 -24
- package/lib/components/core/CoreModal.js +37 -31
- package/lib/components/core/attribute_definition/AttributeDefinitionForm.js +24 -23
- package/lib/components/core/attribute_definition/AttributeDefinitionTable.js +18 -15
- package/lib/components/core/bridge_model/BridgeModelForm.js +27 -37
- package/lib/components/core/bridge_model/BridgeModelTable.js +12 -8
- package/lib/components/core/bridge_model_attribute/BridgeModelAttributeForm.js +17 -16
- package/lib/components/core/bridge_model_attribute/BridgeModelAttributeTable.js +25 -21
- package/lib/components/core/bridge_model_qualification/BridgeModelQualificationForm.js +20 -20
- package/lib/components/core/bridge_model_qualification/BridgeModelQualificationTable.js +27 -22
- package/lib/components/core/category/CategoryForm.js +22 -22
- package/lib/components/core/category/CategoryTable.js +15 -10
- package/lib/components/core/core_form/CoreForm.js +209 -285
- package/lib/components/core/core_form/CoreForm.test.js +12 -10
- package/lib/components/core/core_form/defaults/index.js +52 -44
- package/lib/components/core/core_form/globals.js +14 -5
- package/lib/components/core/field_definition/FieldDefinitionForm.js +23 -21
- package/lib/components/core/field_definition/FieldDefinitionTable.js +15 -10
- package/lib/components/core/file_resource/FileResourceForm.js +38 -37
- package/lib/components/core/file_resource/FileResourceTable.js +16 -12
- package/lib/components/core/form/FormForm.js +56 -61
- package/lib/components/core/form/FormTable.js +25 -22
- package/lib/components/core/form_type/FormTypeForm.js +14 -13
- package/lib/components/core/form_type/FormTypeTable.js +12 -8
- package/lib/components/core/i18n/I18n.js +54 -61
- package/lib/components/core/i18n/I18nContext.js +9 -2
- package/lib/components/core/i18n/I18nProvider.js +40 -43
- package/lib/components/core/i18n/Moment.js +40 -50
- package/lib/components/core/index_definition/IndexDefinitionForm.js +23 -24
- package/lib/components/core/index_definition/IndexDefinitionTable.js +19 -11
- package/lib/components/core/index_job/IndexJobTable.js +20 -15
- package/lib/components/core/kapp/KappForm.js +57 -58
- package/lib/components/core/kapp/KappTable.js +17 -12
- package/lib/components/core/log/LogTable.js +35 -33
- package/lib/components/core/oauth_client/OAuthClientForm.js +17 -17
- package/lib/components/core/oauth_client/OAuthClientTable.js +12 -8
- package/lib/components/core/platform_component/AgentComponentForm.js +15 -15
- package/lib/components/core/platform_component/AgentComponentTable.js +10 -5
- package/lib/components/core/platform_component/TaskComponentForm.js +14 -14
- package/lib/components/core/profile/ProfileForm.js +40 -39
- package/lib/components/core/security_definition/SecurityDefinitionForm.js +28 -25
- package/lib/components/core/security_definition/SecurityDefinitionTable.js +18 -13
- package/lib/components/core/space/SpaceForm.js +79 -90
- package/lib/components/core/submission/DatastoreSubmissionFilters.js +39 -40
- package/lib/components/core/submission/DatastoreSubmissionTable.js +37 -34
- package/lib/components/core/submission/FormSubmissionFilters.js +79 -75
- package/lib/components/core/submission/FormSubmissionTable.js +27 -20
- package/lib/components/core/submission/KappSubmissionTable.js +30 -29
- package/lib/components/core/submission/SubmissionForm.js +126 -55
- package/lib/components/core/submission/SubmissionTable.js +24 -20
- package/lib/components/core/submission/helpers.js +37 -33
- package/lib/components/core/submission/helpers.test.js +69 -20
- package/lib/components/core/team/TeamForm.js +24 -21
- package/lib/components/core/team/TeamTable.js +16 -11
- package/lib/components/core/translation/ContextForm.js +13 -10
- package/lib/components/core/translation/ContextTable.js +13 -10
- package/lib/components/core/translation/EntryForm.js +27 -24
- package/lib/components/core/translation/EntryTable.js +19 -16
- package/lib/components/core/translation/LocaleForm.js +16 -13
- package/lib/components/core/translation/LocaleTable.js +12 -8
- package/lib/components/core/user/UserForm.js +38 -37
- package/lib/components/core/user/UserTable.js +19 -15
- package/lib/components/core/webapi/WebApiForm.js +49 -61
- package/lib/components/core/webapi/WebApiTable.js +14 -10
- package/lib/components/core/webhook/WebhookForm.js +33 -32
- package/lib/components/core/webhook/WebhookTable.js +22 -20
- package/lib/components/core/webhook_job/WebhookJobTable.js +19 -16
- package/lib/components/form/Form.helpers.js +102 -90
- package/lib/components/form/Form.js +467 -524
- package/lib/components/form/Form.models.js +38 -24
- package/lib/components/form/FormState.js +8 -5
- package/lib/components/form/KitchenSinkForm.js +135 -4
- package/lib/components/form/defaults/AttributesField.js +48 -59
- package/lib/components/form/defaults/CheckboxField.js +14 -6
- package/lib/components/form/defaults/CodeField.js +15 -7
- package/lib/components/form/defaults/FormButtons.js +12 -4
- package/lib/components/form/defaults/FormError.js +12 -4
- package/lib/components/form/defaults/FormField.js +15 -7
- package/lib/components/form/defaults/FormLayout.js +12 -4
- package/lib/components/form/defaults/FormMultiField.js +15 -7
- package/lib/components/form/defaults/PasswordField.js +14 -6
- package/lib/components/form/defaults/RadioField.js +15 -7
- package/lib/components/form/defaults/SampleTeamsRolesFIeld.js +17 -9
- package/lib/components/form/defaults/SelectField.js +16 -8
- package/lib/components/form/defaults/SelectMultiField.js +15 -7
- package/lib/components/form/defaults/TableField.js +14 -6
- package/lib/components/form/defaults/TeamField.js +15 -7
- package/lib/components/form/defaults/TeamMultiField.js +15 -7
- package/lib/components/form/defaults/TextField.js +14 -6
- package/lib/components/form/defaults/TextMultiField.js +26 -28
- package/lib/components/form/defaults/UserField.js +15 -7
- package/lib/components/form/defaults/UserMultiField.js +15 -7
- package/lib/components/form/defaults/index.js +48 -41
- package/lib/components/form/tests/Form.test.js +568 -864
- package/lib/components/form/tests/components.js +15 -25
- package/lib/components/form/tests/helpers.test.js +35 -33
- package/lib/components/index.js +981 -133
- package/lib/components/system/SystemBackgroundTasksTable.js +14 -10
- package/lib/components/system/SystemFilestoreForm.js +28 -25
- package/lib/components/system/SystemForm.js +19 -16
- package/lib/components/system/SystemIngressForm.js +10 -9
- package/lib/components/system/SystemSecurityForm.js +17 -14
- package/lib/components/system/SystemSmtpForm.js +13 -13
- package/lib/components/system/SystemTaskAdapterForm.js +21 -17
- package/lib/components/system/SystemUserForm.js +15 -14
- package/lib/components/system/helpers.js +62 -60
- package/lib/components/system/helpers.test.js +16 -12
- package/lib/components/system/spaces/SystemSpaceForm.js +25 -24
- package/lib/components/system/spaces/SystemTenantForm.js +43 -40
- package/lib/components/system/spaces/SystemTenantTable.js +12 -8
- package/lib/components/table/Table.js +219 -225
- package/lib/components/table/Table.redux.js +298 -327
- package/lib/components/table/Table.redux.test.js +49 -47
- package/lib/components/table/Table.test.js +107 -132
- package/lib/components/table/defaults/BodyCell.js +12 -6
- package/lib/components/table/defaults/BodyRow.js +10 -4
- package/lib/components/table/defaults/BooleanFilter.js +17 -11
- package/lib/components/table/defaults/EmptyBodyRow.js +12 -6
- package/lib/components/table/defaults/FilterLayout.js +17 -11
- package/lib/components/table/defaults/Footer.js +11 -5
- package/lib/components/table/defaults/FooterCell.js +10 -4
- package/lib/components/table/defaults/FooterRow.js +10 -4
- package/lib/components/table/defaults/Header.js +10 -4
- package/lib/components/table/defaults/HeaderCell.js +16 -10
- package/lib/components/table/defaults/HeaderRow.js +10 -4
- package/lib/components/table/defaults/PaginationControl.js +18 -9
- package/lib/components/table/defaults/TableBody.js +10 -4
- package/lib/components/table/defaults/TableLayout.js +12 -6
- package/lib/components/table/defaults/TextFilter.js +16 -10
- package/lib/components/table/defaults/index.js +41 -33
- package/lib/components/task/builder/Connector.js +100 -111
- package/lib/components/task/builder/ConnectorForm.js +17 -11
- package/lib/components/task/builder/Node.js +101 -83
- package/lib/components/task/builder/NodeForm.js +30 -27
- package/lib/components/task/builder/NodeParametersForm.js +27 -24
- package/lib/components/task/builder/SvgCanvas.js +67 -96
- package/lib/components/task/builder/SvgText.js +19 -134
- package/lib/components/task/builder/TaskDefinitionConfigForm.js +28 -23
- package/lib/components/task/builder/TreeBuilder.js +140 -115
- package/lib/components/task/builder/builder.redux.js +322 -300
- package/lib/components/task/builder/constants.js +94 -45
- package/lib/components/task/builder/helpers.js +184 -173
- package/lib/components/task/builder/helpers.test.js +20 -18
- package/lib/components/task/builder/models.js +133 -91
- package/lib/components/task/category/TaskCategoryForm.js +31 -29
- package/lib/components/task/category/TaskCategoryTable.js +12 -8
- package/lib/components/task/common/UsageTable.js +16 -12
- package/lib/components/task/engine/EngineSettingsForm.js +13 -11
- package/lib/components/task/errors/RunErrorTable.js +17 -13
- package/lib/components/task/errors/SystemErrorsTable.js +13 -9
- package/lib/components/task/handlers/HandlerForm.js +55 -55
- package/lib/components/task/handlers/HandlerTable.js +12 -8
- package/lib/components/task/handlers/MissingHandlerTable.js +12 -8
- package/lib/components/task/policy_rule/PolicyRuleForm.js +33 -32
- package/lib/components/task/policy_rule/PolicyRuleTable.js +12 -8
- package/lib/components/task/runs/CreateManualTriggerForm.js +17 -15
- package/lib/components/task/runs/RunTable.js +23 -20
- package/lib/components/task/runs/RunTaskTable.js +10 -6
- package/lib/components/task/sources/SourceForm.js +47 -47
- package/lib/components/task/sources/SourceTable.js +14 -11
- package/lib/components/task/triggers/TriggerTable.js +21 -18
- package/lib/components/task/workflows/LinkedWorkflowForm.js +249 -0
- package/lib/components/task/workflows/LinkedWorkflowTable.js +137 -0
- package/lib/components/task/workflows/MissingRoutineTable.js +12 -8
- package/lib/components/task/workflows/WorkflowForm.js +61 -46
- package/lib/components/task/workflows/WorkflowTable.js +17 -14
- package/lib/helpers/SearchBuilder.js +73 -127
- package/lib/helpers/SearchBuilder.test.js +184 -175
- package/lib/helpers/index.js +116 -74
- package/lib/index.js +86 -38
- package/lib/reducer.js +11 -3
- package/lib/saga.js +42 -38
- package/lib/store.js +59 -35
- package/package.json +4 -29
- package/proxyhelper.js +105 -47
- package/assets/discussions/images/avi_128.png +0 -0
- package/assets/discussions/images/excel_128.png +0 -0
- package/assets/discussions/images/html_128.png +0 -0
- package/assets/discussions/images/illustrator_128.png +0 -0
- package/assets/discussions/images/indesign_128.png +0 -0
- package/assets/discussions/images/movie_128.png +0 -0
- package/assets/discussions/images/mpeg_128.png +0 -0
- package/assets/discussions/images/pdf_128.png +0 -0
- package/assets/discussions/images/photoshop_128.png +0 -0
- package/assets/discussions/images/powerpoint_128.png +0 -0
- package/assets/discussions/images/txt_128.png +0 -0
- package/assets/discussions/images/unknown_128.png +0 -0
- package/assets/discussions/images/word_128.png +0 -0
- package/assets/discussions/styles/_discussion.scss +0 -506
- package/lib/apis/discussions/index.js +0 -395
- package/lib/apis/socket/index.js +0 -77
- package/lib/apis/socket/socket.js +0 -350
- package/lib/apis/socket/socket.test.js +0 -90
- package/lib/apis/socket/timer.js +0 -45
- package/lib/apis/socket/timer.test.js +0 -51
- package/lib/apis/socket/topic.js +0 -185
- package/lib/apis/topics/index.js +0 -19
- package/lib/components/discussions/ChatInputForm.js +0 -424
- package/lib/components/discussions/DateBanner.js +0 -10
- package/lib/components/discussions/Discussion.js +0 -202
- package/lib/components/discussions/DiscussionForm.js +0 -227
- package/lib/components/discussions/InvitationForm.js +0 -107
- package/lib/components/discussions/MessageHistory.js +0 -110
- package/lib/components/discussions/MessagesByDate.js +0 -40
- package/lib/components/discussions/MessagesList.js +0 -30
- package/lib/components/discussions/MoreMessagesBanner.js +0 -26
- package/lib/components/discussions/ScrollHelper.js +0 -84
- package/lib/components/discussions/SystemMessage.js +0 -88
- package/lib/components/discussions/SystemMessageGroup.js +0 -15
- package/lib/components/discussions/UserMessage.js +0 -163
- package/lib/components/discussions/UserMessageGroup.js +0 -34
- package/lib/components/discussions/redux.js +0 -178
- package/lib/components/discussions/sagas.js +0 -500
- package/lib/helpers/discussions/canManage.js +0 -30
- package/lib/helpers/discussions/canManage.test.js +0 -69
- package/lib/helpers/discussions/generateSystemMessageContent.js +0 -131
- package/lib/helpers/discussions/generateSystemMessageContent.test.js +0 -450
- package/lib/models/discussions.js +0 -76
- package/lib/models/index.js +0 -1
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
3
|
-
import axios from 'axios';
|
|
1
|
+
"use strict";
|
|
4
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
|
|
10
|
+
var _axios = _interopRequireDefault(require("axios"));
|
|
5
11
|
var AuthInterceptor = /*#__PURE__*/function () {
|
|
6
12
|
function AuthInterceptor(store, unauthenticatedAction, authenticatedSelector, cancelledSelector) {
|
|
7
|
-
|
|
8
|
-
|
|
13
|
+
(0, _classCallCheck2["default"])(this, AuthInterceptor);
|
|
9
14
|
this.store = store;
|
|
10
15
|
this.unauthenticatedAction = unauthenticatedAction;
|
|
11
16
|
this.authenticatedSelector = authenticatedSelector;
|
|
@@ -14,19 +19,15 @@ var AuthInterceptor = /*#__PURE__*/function () {
|
|
|
14
19
|
this.handleRejected = this.handleRejected.bind(this);
|
|
15
20
|
this.authenticate = this.authenticate.bind(this);
|
|
16
21
|
}
|
|
17
|
-
|
|
18
|
-
_createClass(AuthInterceptor, [{
|
|
22
|
+
(0, _createClass2["default"])(AuthInterceptor, [{
|
|
19
23
|
key: "authenticate",
|
|
20
24
|
value: function authenticate() {
|
|
21
25
|
var _this = this;
|
|
22
|
-
|
|
23
26
|
this.store.dispatch(this.unauthenticatedAction());
|
|
24
|
-
|
|
25
27
|
if (this.authenticatedSelector(this.store.getState()) || this.cancelledSelector(this.store.getState())) {
|
|
26
28
|
console.error('AuthInterceptor found invalid state when handling unauthenticated ' + 'response. The selectors given (authenticated and cancelled) should ' + 'both return false initially and then return true once the user has ' + 'successfully authenticated or cancelled respectively.');
|
|
27
29
|
return Promise.reject();
|
|
28
30
|
}
|
|
29
|
-
|
|
30
31
|
return new Promise(function (resolve, reject) {
|
|
31
32
|
var unsub = _this.store.subscribe(function () {
|
|
32
33
|
if (_this.authenticatedSelector(_this.store.getState())) {
|
|
@@ -43,20 +44,17 @@ var AuthInterceptor = /*#__PURE__*/function () {
|
|
|
43
44
|
key: "handleRejected",
|
|
44
45
|
value: function handleRejected(error) {
|
|
45
46
|
var _this2 = this;
|
|
46
|
-
|
|
47
47
|
if (error.response && error.response.status === 401 && !error.response.config.__bypassAuthInterceptor) {
|
|
48
48
|
if (!this.authPromise) {
|
|
49
49
|
this.authPromise = this.authenticate();
|
|
50
|
-
this.authPromise["finally"](function () {
|
|
51
|
-
_this2.authPromise = null;
|
|
52
|
-
});
|
|
53
50
|
}
|
|
54
|
-
|
|
55
51
|
return new Promise(function (resolve, reject) {
|
|
56
52
|
_this2.authPromise.then(function () {
|
|
57
|
-
|
|
53
|
+
(0, _axios["default"])(error.response.config).then(resolve)["catch"](reject);
|
|
58
54
|
})["catch"](function () {
|
|
59
55
|
reject(error);
|
|
56
|
+
})["finally"](function () {
|
|
57
|
+
_this2.authPromise = null;
|
|
60
58
|
});
|
|
61
59
|
});
|
|
62
60
|
} else {
|
|
@@ -64,8 +62,6 @@ var AuthInterceptor = /*#__PURE__*/function () {
|
|
|
64
62
|
}
|
|
65
63
|
}
|
|
66
64
|
}]);
|
|
67
|
-
|
|
68
65
|
return AuthInterceptor;
|
|
69
66
|
}();
|
|
70
|
-
|
|
71
|
-
export { AuthInterceptor as default };
|
|
67
|
+
exports["default"] = AuthInterceptor;
|
|
@@ -1,24 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regeneratorRuntime"));
|
|
5
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
6
|
+
var _AuthInterceptor = _interopRequireDefault(require("./AuthInterceptor"));
|
|
7
|
+
var _axios = _interopRequireDefault(require("axios"));
|
|
5
8
|
jest.mock('axios');
|
|
6
9
|
var store;
|
|
7
|
-
|
|
8
10
|
var unauthenticatedAction = function unauthenticatedAction() {
|
|
9
11
|
return {
|
|
10
12
|
type: 'TIMED_OUT'
|
|
11
13
|
};
|
|
12
14
|
};
|
|
13
|
-
|
|
14
15
|
var authenticatedSelector = function authenticatedSelector(state) {
|
|
15
16
|
return state.authenticated;
|
|
16
17
|
};
|
|
17
|
-
|
|
18
18
|
var cancelledSelector = function cancelledSelector(state) {
|
|
19
19
|
return state.cancelled;
|
|
20
20
|
};
|
|
21
|
-
|
|
22
21
|
describe('AuthInterceptor', function () {
|
|
23
22
|
beforeEach(function () {
|
|
24
23
|
store = {
|
|
@@ -34,7 +33,6 @@ describe('AuthInterceptor', function () {
|
|
|
34
33
|
},
|
|
35
34
|
subscribe: function subscribe(listener) {
|
|
36
35
|
var _this = this;
|
|
37
|
-
|
|
38
36
|
this.listeners.push(listener);
|
|
39
37
|
return function () {
|
|
40
38
|
_this.listeners = _this.listeners.filter(function (l) {
|
|
@@ -45,29 +43,29 @@ describe('AuthInterceptor', function () {
|
|
|
45
43
|
actions: [],
|
|
46
44
|
listeners: []
|
|
47
45
|
};
|
|
48
|
-
|
|
46
|
+
_axios["default"].mockReset();
|
|
49
47
|
});
|
|
50
48
|
describe('constructor', function () {
|
|
51
49
|
test('sets properties', function () {
|
|
52
|
-
var authInterceptor = new
|
|
50
|
+
var authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector);
|
|
53
51
|
expect(authInterceptor.store).toBe(store);
|
|
54
52
|
expect(authInterceptor.unauthenticatedAction).toBe(unauthenticatedAction);
|
|
55
53
|
expect(authInterceptor.authenticatedSelector).toBe(authenticatedSelector);
|
|
56
54
|
expect(authInterceptor.cancelledSelector).toBe(cancelledSelector);
|
|
57
55
|
});
|
|
58
56
|
test('autPromise should be null', function () {
|
|
59
|
-
var authInterceptor = new
|
|
57
|
+
var authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector);
|
|
60
58
|
expect(authInterceptor.authPromise).toBeNull();
|
|
61
59
|
});
|
|
62
60
|
});
|
|
63
61
|
describe('handleRejected', function () {
|
|
64
|
-
test('returns rejected promise with the given error if not 401', /*#__PURE__*/
|
|
62
|
+
test('returns rejected promise with the given error if not 401', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee() {
|
|
65
63
|
var authInterceptor, error;
|
|
66
|
-
return
|
|
64
|
+
return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
|
|
67
65
|
while (1) {
|
|
68
66
|
switch (_context.prev = _context.next) {
|
|
69
67
|
case 0:
|
|
70
|
-
authInterceptor = new
|
|
68
|
+
authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector);
|
|
71
69
|
error = {
|
|
72
70
|
response: {
|
|
73
71
|
status: 400
|
|
@@ -75,10 +73,8 @@ describe('AuthInterceptor', function () {
|
|
|
75
73
|
};
|
|
76
74
|
_context.next = 4;
|
|
77
75
|
return expect(authInterceptor.handleRejected(error)).rejects.toBe(error);
|
|
78
|
-
|
|
79
76
|
case 4:
|
|
80
77
|
expect(authInterceptor.authPromise).toBeNull();
|
|
81
|
-
|
|
82
78
|
case 5:
|
|
83
79
|
case "end":
|
|
84
80
|
return _context.stop();
|
|
@@ -86,16 +82,15 @@ describe('AuthInterceptor', function () {
|
|
|
86
82
|
}
|
|
87
83
|
}, _callee);
|
|
88
84
|
})));
|
|
89
|
-
test('performs authentication workflow with successful login', /*#__PURE__*/
|
|
85
|
+
test('performs authentication workflow with successful login', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee2() {
|
|
90
86
|
var authInterceptor, error, rejectedCall;
|
|
91
|
-
return
|
|
87
|
+
return (0, _regeneratorRuntime2["default"])().wrap(function _callee2$(_context2) {
|
|
92
88
|
while (1) {
|
|
93
89
|
switch (_context2.prev = _context2.next) {
|
|
94
90
|
case 0:
|
|
95
|
-
authInterceptor = new
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
91
|
+
authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector); // Mock an axios return value.
|
|
92
|
+
_axios["default"].mockReturnValue(Promise.resolve('Hello World'));
|
|
93
|
+
// Make a call to handleRejected that will trigger the auth functionality.
|
|
99
94
|
error = {
|
|
100
95
|
response: {
|
|
101
96
|
status: 401,
|
|
@@ -106,27 +101,24 @@ describe('AuthInterceptor', function () {
|
|
|
106
101
|
};
|
|
107
102
|
rejectedCall = authInterceptor.handleRejected(error); // It should dispatch the redux action using the action creator passed to
|
|
108
103
|
// the controller and start to listen to the store for success or cancel.
|
|
109
|
-
|
|
110
104
|
expect(store.actions).toEqual([{
|
|
111
105
|
type: 'TIMED_OUT'
|
|
112
106
|
}]);
|
|
113
107
|
expect(store.listeners.length).toBe(1);
|
|
114
|
-
expect(authInterceptor.authPromise).not.toBeNull();
|
|
115
|
-
|
|
108
|
+
expect(authInterceptor.authPromise).not.toBeNull();
|
|
109
|
+
// Simulate sucessful authentication and call the listener.
|
|
116
110
|
store.state.authenticated = true;
|
|
117
|
-
store.listeners[0]();
|
|
111
|
+
store.listeners[0]();
|
|
112
|
+
// The promse should be resolved with the axios resolved value. Also
|
|
118
113
|
// ensure that axios was called and that the listener is unsubscribed.
|
|
119
|
-
|
|
120
114
|
_context2.next = 11;
|
|
121
115
|
return expect(rejectedCall).resolves.toBe('Hello World');
|
|
122
|
-
|
|
123
116
|
case 11:
|
|
124
|
-
expect(
|
|
117
|
+
expect(_axios["default"].mock.calls).toEqual([[{
|
|
125
118
|
url: 'foo'
|
|
126
119
|
}]]);
|
|
127
120
|
expect(store.listeners.length).toBe(0);
|
|
128
121
|
expect(authInterceptor.authPromise).toBeNull();
|
|
129
|
-
|
|
130
122
|
case 14:
|
|
131
123
|
case "end":
|
|
132
124
|
return _context2.stop();
|
|
@@ -134,14 +126,13 @@ describe('AuthInterceptor', function () {
|
|
|
134
126
|
}
|
|
135
127
|
}, _callee2);
|
|
136
128
|
})));
|
|
137
|
-
test('performs authentication workflow with cancelled login', /*#__PURE__*/
|
|
129
|
+
test('performs authentication workflow with cancelled login', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee3() {
|
|
138
130
|
var authInterceptor, error, rejectedCall;
|
|
139
|
-
return
|
|
131
|
+
return (0, _regeneratorRuntime2["default"])().wrap(function _callee3$(_context3) {
|
|
140
132
|
while (1) {
|
|
141
133
|
switch (_context3.prev = _context3.next) {
|
|
142
134
|
case 0:
|
|
143
|
-
authInterceptor = new
|
|
144
|
-
|
|
135
|
+
authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector); // Make a call to handleRejected that will trigger the auth functionality.
|
|
145
136
|
error = {
|
|
146
137
|
response: {
|
|
147
138
|
status: 401,
|
|
@@ -152,25 +143,22 @@ describe('AuthInterceptor', function () {
|
|
|
152
143
|
};
|
|
153
144
|
rejectedCall = authInterceptor.handleRejected(error); // It should dispatch the redux action using the action creator passed to
|
|
154
145
|
// the controller and start to listen to the store for success or cancel.
|
|
155
|
-
|
|
156
146
|
expect(store.actions).toEqual([{
|
|
157
147
|
type: 'TIMED_OUT'
|
|
158
148
|
}]);
|
|
159
149
|
expect(store.listeners.length).toBe(1);
|
|
160
|
-
expect(authInterceptor.authPromise).not.toBeNull();
|
|
161
|
-
|
|
150
|
+
expect(authInterceptor.authPromise).not.toBeNull();
|
|
151
|
+
// Simulate cancel and call the listener.
|
|
162
152
|
store.state.cancelled = true;
|
|
163
|
-
store.listeners[0]();
|
|
153
|
+
store.listeners[0]();
|
|
154
|
+
// The promse should be rejected with the original error object. Also
|
|
164
155
|
// ensure that axios is not called and that the listener is unsubscribed.
|
|
165
|
-
|
|
166
156
|
_context3.next = 10;
|
|
167
157
|
return expect(rejectedCall).rejects.toBe(error);
|
|
168
|
-
|
|
169
158
|
case 10:
|
|
170
|
-
expect(
|
|
159
|
+
expect(_axios["default"].mock.calls).toEqual([]);
|
|
171
160
|
expect(store.listeners.length).toBe(0);
|
|
172
161
|
expect(authInterceptor.authPromise).toBeNull();
|
|
173
|
-
|
|
174
162
|
case 13:
|
|
175
163
|
case "end":
|
|
176
164
|
return _context3.stop();
|
|
@@ -178,16 +166,15 @@ describe('AuthInterceptor', function () {
|
|
|
178
166
|
}
|
|
179
167
|
}, _callee3);
|
|
180
168
|
})));
|
|
181
|
-
test('creates one authPromise for multiple calls', /*#__PURE__*/
|
|
169
|
+
test('creates one authPromise for multiple calls', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee4() {
|
|
182
170
|
var authInterceptor, error, authPromise1, authPromise2;
|
|
183
|
-
return
|
|
171
|
+
return (0, _regeneratorRuntime2["default"])().wrap(function _callee4$(_context4) {
|
|
184
172
|
while (1) {
|
|
185
173
|
switch (_context4.prev = _context4.next) {
|
|
186
174
|
case 0:
|
|
187
|
-
authInterceptor = new
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
175
|
+
authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector); // Should be null initially.
|
|
176
|
+
expect(authInterceptor.authPromise).toBeNull();
|
|
177
|
+
// Call handleRejected with the error object, should return a promise.
|
|
191
178
|
error = {
|
|
192
179
|
response: {
|
|
193
180
|
status: 401,
|
|
@@ -196,16 +183,15 @@ describe('AuthInterceptor', function () {
|
|
|
196
183
|
}
|
|
197
184
|
}
|
|
198
185
|
};
|
|
199
|
-
authInterceptor.handleRejected(error);
|
|
200
|
-
|
|
186
|
+
authInterceptor.handleRejected(error);
|
|
187
|
+
// Should now be set after a call to handleRejected.
|
|
201
188
|
authPromise1 = authInterceptor.authPromise;
|
|
202
|
-
expect(authPromise1).not.toBeNull();
|
|
189
|
+
expect(authPromise1).not.toBeNull();
|
|
190
|
+
// Second call to handleRejected should not change the value of the
|
|
203
191
|
// authPromise.
|
|
204
|
-
|
|
205
192
|
authInterceptor.handleRejected(error);
|
|
206
193
|
authPromise2 = authInterceptor.authPromise;
|
|
207
194
|
expect(authPromise1).toBe(authPromise2);
|
|
208
|
-
|
|
209
195
|
case 9:
|
|
210
196
|
case "end":
|
|
211
197
|
return _context4.stop();
|
|
@@ -213,13 +199,13 @@ describe('AuthInterceptor', function () {
|
|
|
213
199
|
}
|
|
214
200
|
}, _callee4);
|
|
215
201
|
})));
|
|
216
|
-
test('returns original error if authenticated selector returns true initially', /*#__PURE__*/
|
|
202
|
+
test('returns original error if authenticated selector returns true initially', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee5() {
|
|
217
203
|
var authInterceptor, error;
|
|
218
|
-
return
|
|
204
|
+
return (0, _regeneratorRuntime2["default"])().wrap(function _callee5$(_context5) {
|
|
219
205
|
while (1) {
|
|
220
206
|
switch (_context5.prev = _context5.next) {
|
|
221
207
|
case 0:
|
|
222
|
-
authInterceptor = new
|
|
208
|
+
authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector);
|
|
223
209
|
error = {
|
|
224
210
|
response: {
|
|
225
211
|
status: 401,
|
|
@@ -231,10 +217,8 @@ describe('AuthInterceptor', function () {
|
|
|
231
217
|
store.state.authenticated = true;
|
|
232
218
|
_context5.next = 5;
|
|
233
219
|
return expect(authInterceptor.handleRejected(error)).rejects.toBe(error);
|
|
234
|
-
|
|
235
220
|
case 5:
|
|
236
221
|
expect(authInterceptor.authPromise).toBeNull();
|
|
237
|
-
|
|
238
222
|
case 6:
|
|
239
223
|
case "end":
|
|
240
224
|
return _context5.stop();
|
|
@@ -242,13 +226,13 @@ describe('AuthInterceptor', function () {
|
|
|
242
226
|
}
|
|
243
227
|
}, _callee5);
|
|
244
228
|
})));
|
|
245
|
-
test('returns original error if cancelled selector returns true initially', /*#__PURE__*/
|
|
229
|
+
test('returns original error if cancelled selector returns true initially', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee6() {
|
|
246
230
|
var authInterceptor, error;
|
|
247
|
-
return
|
|
231
|
+
return (0, _regeneratorRuntime2["default"])().wrap(function _callee6$(_context6) {
|
|
248
232
|
while (1) {
|
|
249
233
|
switch (_context6.prev = _context6.next) {
|
|
250
234
|
case 0:
|
|
251
|
-
authInterceptor = new
|
|
235
|
+
authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector);
|
|
252
236
|
error = {
|
|
253
237
|
response: {
|
|
254
238
|
status: 401,
|
|
@@ -260,10 +244,8 @@ describe('AuthInterceptor', function () {
|
|
|
260
244
|
store.state.cancelled = true;
|
|
261
245
|
_context6.next = 5;
|
|
262
246
|
return expect(authInterceptor.handleRejected(error)).rejects.toBe(error);
|
|
263
|
-
|
|
264
247
|
case 5:
|
|
265
248
|
expect(authInterceptor.authPromise).toBeNull();
|
|
266
|
-
|
|
267
249
|
case 6:
|
|
268
250
|
case "end":
|
|
269
251
|
return _context6.stop();
|