@kineticdata/react 6.0.0 → 6.0.2
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/lib/apis/agent/adapters.js +2 -3
- package/lib/apis/agent/bridges.js +7 -13
- package/lib/apis/agent/handlers.js +7 -13
- package/lib/apis/core/activity.js +2 -3
- package/lib/apis/core/attributeDefinitions.js +6 -11
- package/lib/apis/core/attributeDefinitions.test.js +201 -213
- package/lib/apis/core/authentication.js +74 -84
- package/lib/apis/core/backgroundJobs.js +5 -9
- package/lib/apis/core/bridgeModelAttributeMappings.js +5 -10
- package/lib/apis/core/bridgeModelAttributes.js +6 -11
- package/lib/apis/core/bridgeModelMappings.js +5 -10
- package/lib/apis/core/bridgeModelQualificationMappings.js +5 -10
- package/lib/apis/core/bridgeModelQualifications.js +5 -10
- package/lib/apis/core/bridgeModels.js +7 -13
- package/lib/apis/core/bridgeModels.test.js +313 -333
- package/lib/apis/core/bridgedresources.js +7 -13
- package/lib/apis/core/categories.js +6 -11
- package/lib/apis/core/fileResources.js +5 -10
- package/lib/apis/core/filestores.js +5 -10
- package/lib/apis/core/formTypes.js +6 -11
- package/lib/apis/core/forms.js +6 -11
- package/lib/apis/core/forms.test.js +201 -213
- package/lib/apis/core/kapps.js +6 -11
- package/lib/apis/core/kapps.test.js +122 -130
- package/lib/apis/core/logs.js +3 -5
- package/lib/apis/core/memberships.js +3 -5
- package/lib/apis/core/meta.js +6 -11
- package/lib/apis/core/notices.js +2 -3
- package/lib/apis/core/oauthClients.js +6 -11
- package/lib/apis/core/platformComponents.js +10 -19
- package/lib/apis/core/platformItems.js +2 -3
- package/lib/apis/core/profile.js +3 -5
- package/lib/apis/core/securityPolicyDefinitions.js +6 -11
- package/lib/apis/core/securityPolicyDefinitions.test.js +254 -268
- package/lib/apis/core/space.js +3 -5
- package/lib/apis/core/space.test.js +106 -114
- package/lib/apis/core/submissions.js +17 -33
- package/lib/apis/core/teams.js +6 -11
- package/lib/apis/core/translations.js +18 -35
- package/lib/apis/core/translations.test.js +1343 -1437
- package/lib/apis/core/users.js +6 -11
- package/lib/apis/core/version.js +2 -3
- package/lib/apis/core/webApis.js +5 -10
- package/lib/apis/core/webhooks.js +6 -11
- package/lib/apis/core/webhooks.test.js +243 -257
- package/lib/apis/core/webhooksJobs.js +3 -5
- package/lib/apis/core/workflows.js +7 -13
- package/lib/apis/http.js +47 -30
- package/lib/apis/http.test.js +100 -0
- package/lib/apis/system/index.js +167 -81
- package/lib/apis/task/index.js +73 -118
- package/lib/components/agent/bridge/BridgeForm.js +1 -2
- package/lib/components/agent/bridge/BridgeTable.js +5 -3
- package/lib/components/agent/filestore/FilestoreForm.js +1 -2
- package/lib/components/agent/filestore/FilestoreTable.js +5 -3
- package/lib/components/agent/handler/AgentHandlerForm.js +1 -2
- package/lib/components/agent/handler/AgentHandlerTable.js +6 -4
- package/lib/components/common/AttributeSelect.js +2 -3
- package/lib/components/common/BridgeSelect.js +16 -17
- package/lib/components/common/ComponentConfigContext.js +1 -2
- package/lib/components/common/ContentEditable.js +23 -3
- package/lib/components/common/FormSelect.js +16 -17
- package/lib/components/common/NodeSelect.js +2 -3
- package/lib/components/common/Scroller.js +2 -3
- package/lib/components/common/StaticSelect.js +14 -15
- package/lib/components/common/TableInput.js +276 -63
- package/lib/components/common/TeamSelect.js +16 -17
- package/lib/components/common/ToastContainer.js +165 -0
- package/lib/components/common/Typeahead.js +15 -2
- package/lib/components/common/UserSelect.js +16 -17
- package/lib/components/common/authentication/AuthInterceptor.js +2 -3
- package/lib/components/common/authentication/AuthInterceptor.test.js +141 -153
- package/lib/components/common/authentication/AuthenticationContainer.js +332 -343
- package/lib/components/common/authentication/RequestInterceptor.js +2 -10
- package/lib/components/common/code_input/CodeInput.js +4 -9
- package/lib/components/common/code_input/draftHelpers.js +20 -37
- package/lib/components/common/code_input/languageHelpers.js +6 -12
- package/lib/components/common/code_input/languageHelpers.test.js +10 -8
- package/lib/components/common/defaults/Toast.js +25 -0
- package/lib/components/common/defaults/index.js +12 -0
- package/lib/components/core/attribute_definition/AttributeDefinitionForm.js +1 -2
- package/lib/components/core/attribute_definition/AttributeDefinitionTable.js +8 -5
- package/lib/components/core/bridge_model/BridgeModelForm.js +52 -55
- package/lib/components/core/bridge_model/BridgeModelTable.js +6 -4
- package/lib/components/core/bridge_model_attribute/BridgeModelAttributeForm.js +1 -2
- package/lib/components/core/bridge_model_attribute/BridgeModelAttributeTable.js +1 -2
- package/lib/components/core/bridge_model_qualification/BridgeModelQualificationForm.js +1 -2
- package/lib/components/core/bridge_model_qualification/BridgeModelQualificationTable.js +1 -2
- package/lib/components/core/category/CategoryForm.js +1 -2
- package/lib/components/core/category/CategoryTable.js +14 -8
- package/lib/components/core/core_form/CoreForm.js +11 -22
- package/lib/components/core/core_form/defaults/index.js +11 -19
- package/lib/components/core/core_form/globals.js +3 -5
- package/lib/components/core/field_definition/FieldDefinitionForm.js +1 -2
- package/lib/components/core/field_definition/FieldDefinitionTable.js +13 -9
- package/lib/components/core/file_resource/FileResourceForm.js +1 -2
- package/lib/components/core/file_resource/FileResourceTable.js +1 -2
- package/lib/components/core/form/FormForm.js +1 -2
- package/lib/components/core/form/FormTable.js +23 -13
- package/lib/components/core/form_type/FormTypeForm.js +1 -2
- package/lib/components/core/form_type/FormTypeTable.js +4 -3
- package/lib/components/core/i18n/I18n.js +2 -4
- package/lib/components/core/i18n/I18nContext.js +1 -2
- package/lib/components/core/i18n/I18nProvider.js +2 -3
- package/lib/components/core/i18n/Moment.js +10 -9
- package/lib/components/core/index_definition/IndexDefinitionForm.js +1 -2
- package/lib/components/core/index_definition/IndexDefinitionTable.js +13 -7
- package/lib/components/core/index_job/IndexJobTable.js +1 -2
- package/lib/components/core/kapp/KappForm.js +1 -2
- package/lib/components/core/kapp/KappTable.js +18 -34
- package/lib/components/core/log/LogTable.js +10 -6
- package/lib/components/core/oauth_client/OAuthClientForm.js +1 -2
- package/lib/components/core/oauth_client/OAuthClientTable.js +1 -2
- package/lib/components/core/platform_component/AgentComponentForm.js +1 -2
- package/lib/components/core/platform_component/AgentComponentTable.js +1 -2
- package/lib/components/core/platform_component/TaskComponentForm.js +1 -2
- package/lib/components/core/profile/ProfileForm.js +1 -2
- package/lib/components/core/security_definition/SecurityDefinitionForm.js +3 -6
- package/lib/components/core/security_definition/SecurityDefinitionTable.js +10 -6
- package/lib/components/core/space/SpaceForm.js +1 -2
- package/lib/components/core/submission/DatastoreSubmissionFilters.js +3 -5
- package/lib/components/core/submission/DatastoreSubmissionTable.js +2 -4
- package/lib/components/core/submission/FormSubmissionFilters.js +4 -7
- package/lib/components/core/submission/FormSubmissionTable.js +39 -23
- package/lib/components/core/submission/KappSubmissionTable.js +39 -23
- package/lib/components/core/submission/SubmissionForm.js +1 -2
- package/lib/components/core/submission/SubmissionTable.js +2 -3
- package/lib/components/core/submission/helpers.js +4 -7
- package/lib/components/core/team/TeamForm.js +2 -3
- package/lib/components/core/team/TeamTable.js +12 -7
- package/lib/components/core/translation/ContextForm.js +1 -2
- package/lib/components/core/translation/ContextTable.js +1 -2
- package/lib/components/core/translation/EntryForm.js +1 -2
- package/lib/components/core/translation/EntryTable.js +1 -2
- package/lib/components/core/translation/LocaleForm.js +1 -2
- package/lib/components/core/translation/LocaleTable.js +1 -2
- package/lib/components/core/user/UserForm.js +1 -2
- package/lib/components/core/user/UserTable.js +24 -7
- package/lib/components/core/webapi/WebApiForm.js +138 -123
- package/lib/components/core/webapi/WebApiTable.js +15 -9
- package/lib/components/core/webhook/WebhookForm.js +1 -2
- package/lib/components/core/webhook/WebhookTable.js +20 -11
- package/lib/components/core/webhook_job/WebhookJobTable.js +40 -21
- package/lib/components/form/Form.helpers.js +91 -38
- package/lib/components/form/Form.js +312 -355
- package/lib/components/form/Form.models.js +7 -11
- package/lib/components/form/FormState.js +1 -2
- package/lib/components/form/KitchenSinkForm.js +23 -3
- package/lib/components/form/SimpleForm.helpers.js +262 -0
- package/lib/components/form/SimpleForm.js +462 -0
- package/lib/components/form/SimpleForm.models.js +62 -0
- package/lib/components/form/defaults/AttributesField.js +3 -4
- package/lib/components/form/defaults/CheckboxField.js +2 -3
- package/lib/components/form/defaults/CodeField.js +2 -3
- package/lib/components/form/defaults/FormButtons.js +2 -3
- package/lib/components/form/defaults/FormError.js +2 -3
- package/lib/components/form/defaults/FormField.js +2 -3
- package/lib/components/form/defaults/FormLayout.js +2 -3
- package/lib/components/form/defaults/FormMultiField.js +2 -3
- package/lib/components/form/defaults/PasswordField.js +2 -3
- package/lib/components/form/defaults/RadioField.js +2 -3
- package/lib/components/form/defaults/SampleTeamsRolesFIeld.js +2 -3
- package/lib/components/form/defaults/SelectField.js +2 -3
- package/lib/components/form/defaults/SelectMultiField.js +2 -3
- package/lib/components/form/defaults/TableField.js +2 -3
- package/lib/components/form/defaults/TeamField.js +2 -3
- package/lib/components/form/defaults/TeamMultiField.js +2 -3
- package/lib/components/form/defaults/TextField.js +2 -3
- package/lib/components/form/defaults/TextMultiField.js +2 -3
- package/lib/components/form/defaults/UserField.js +2 -3
- package/lib/components/form/defaults/UserMultiField.js +2 -3
- package/lib/components/form/defaults/index.js +2 -3
- package/lib/components/form/tests/Form.test.js +3865 -4257
- package/lib/components/form/tests/components.js +2 -3
- package/lib/components/index.js +60 -0
- package/lib/components/system/SystemBackgroundTasksTable.js +1 -2
- package/lib/components/system/SystemCassandraForm.js +97 -0
- package/lib/components/system/SystemElasticSearchForm.js +97 -0
- package/lib/components/system/SystemFilestoreForm.js +12 -8
- package/lib/components/system/SystemForm.js +1 -2
- package/lib/components/system/SystemIngressForm.js +78 -31
- package/lib/components/system/SystemSecurityForm.js +1 -2
- package/lib/components/system/SystemSmtpForm.js +1 -2
- package/lib/components/system/SystemTaskAdapterForm.js +30 -7
- package/lib/components/system/SystemTrustedCertificateForm.js +39 -0
- package/lib/components/system/SystemTrustedCertificatesTable.js +73 -0
- package/lib/components/system/SystemUserForm.js +1 -2
- package/lib/components/system/helpers.js +236 -65
- package/lib/components/system/spaces/SystemSpaceForm.js +2 -3
- package/lib/components/system/spaces/SystemTenantForm.js +77 -37
- package/lib/components/system/spaces/SystemTenantTable.js +1 -2
- package/lib/components/table/Table.js +132 -54
- package/lib/components/table/Table.redux.js +229 -235
- package/lib/components/table/Table.test.js +154 -123
- package/lib/components/table/defaults/BodyCell.js +1 -2
- package/lib/components/table/defaults/BodyRow.js +1 -2
- package/lib/components/table/defaults/BooleanFilter.js +1 -2
- package/lib/components/table/defaults/ColumnControl.js +25 -0
- package/lib/components/table/defaults/EmptyBodyRow.js +1 -2
- package/lib/components/table/defaults/FilterLayout.js +1 -2
- package/lib/components/table/defaults/Footer.js +1 -2
- package/lib/components/table/defaults/FooterCell.js +1 -2
- package/lib/components/table/defaults/FooterRow.js +1 -2
- package/lib/components/table/defaults/Header.js +1 -2
- package/lib/components/table/defaults/HeaderCell.js +1 -2
- package/lib/components/table/defaults/HeaderRow.js +1 -2
- package/lib/components/table/defaults/PaginationControl.js +2 -4
- package/lib/components/table/defaults/TableBody.js +1 -2
- package/lib/components/table/defaults/TableLayout.js +1 -2
- package/lib/components/table/defaults/TextFilter.js +1 -2
- package/lib/components/table/defaults/index.js +5 -4
- package/lib/components/task/builder/Connector.js +26 -11
- package/lib/components/task/builder/ConnectorForm.js +1 -2
- package/lib/components/task/builder/Node.js +18 -9
- package/lib/components/task/builder/NodeForm.js +1 -2
- package/lib/components/task/builder/NodeParametersForm.js +1 -2
- package/lib/components/task/builder/SvgCanvas.js +2 -3
- package/lib/components/task/builder/SvgText.js +2 -3
- package/lib/components/task/builder/TaskDefinitionConfigForm.js +3 -6
- package/lib/components/task/builder/TreeBuilder.js +10 -4
- package/lib/components/task/builder/builder.redux.js +171 -182
- package/lib/components/task/builder/constants.js +38 -76
- package/lib/components/task/builder/helpers.js +23 -40
- package/lib/components/task/builder/models.js +19 -35
- package/lib/components/task/category/TaskCategoryForm.js +2 -3
- package/lib/components/task/category/TaskCategoryTable.js +1 -2
- package/lib/components/task/common/UsageTable.js +1 -2
- package/lib/components/task/engine/EngineSettingsForm.js +2 -3
- package/lib/components/task/errors/RunErrorTable.js +35 -17
- package/lib/components/task/errors/SystemErrorsTable.js +1 -2
- package/lib/components/task/handlers/HandlerForm.js +2 -3
- package/lib/components/task/handlers/HandlerTable.js +24 -13
- package/lib/components/task/handlers/MissingHandlerTable.js +1 -2
- package/lib/components/task/policy_rule/PolicyRuleForm.js +2 -3
- package/lib/components/task/policy_rule/PolicyRuleTable.js +1 -2
- package/lib/components/task/runs/CreateManualTriggerForm.js +1 -2
- package/lib/components/task/runs/RunTable.js +24 -12
- package/lib/components/task/runs/RunTaskTable.js +1 -2
- package/lib/components/task/sources/SourceForm.js +1 -2
- package/lib/components/task/sources/SourceTable.js +16 -9
- package/lib/components/task/triggers/TriggerTable.js +52 -26
- package/lib/components/task/workflows/LinkedWorkflowForm.js +3 -5
- package/lib/components/task/workflows/LinkedWorkflowTable.js +33 -18
- package/lib/components/task/workflows/MissingRoutineTable.js +1 -2
- package/lib/components/task/workflows/WorkflowForm.js +2 -3
- package/lib/components/task/workflows/WorkflowTable.js +31 -17
- package/lib/helpers/SearchBuilder.js +2 -4
- package/lib/helpers/index.js +13 -26
- package/lib/index.js +7 -9
- package/lib/reducer.js +3 -5
- package/lib/saga.js +32 -48
- package/lib/store.js +32 -42
- package/package.json +26 -16
- package/proxyhelper.js +17 -11
- package/lib/components/core/CoreFormModal.js +0 -64
- package/lib/components/core/CoreModal.js +0 -114
|
@@ -23,7 +23,7 @@ var initialState = {
|
|
|
23
23
|
refocus: false,
|
|
24
24
|
result: null
|
|
25
25
|
};
|
|
26
|
-
var Typeahead = /*#__PURE__*/function (_React$Component) {
|
|
26
|
+
var Typeahead = exports.Typeahead = /*#__PURE__*/function (_React$Component) {
|
|
27
27
|
(0, _inherits2["default"])(Typeahead, _React$Component);
|
|
28
28
|
var _super = (0, _createSuper2["default"])(Typeahead);
|
|
29
29
|
function Typeahead(props) {
|
|
@@ -92,6 +92,13 @@ var Typeahead = /*#__PURE__*/function (_React$Component) {
|
|
|
92
92
|
}
|
|
93
93
|
};
|
|
94
94
|
};
|
|
95
|
+
// Called by Autosuggest when a fetch is requested. With the prop
|
|
96
|
+
// alwaysRenderSuggestions this will be called onFocus, onChange, and even
|
|
97
|
+
// when a suggestion is selected. Because of the latter, we check to see if we
|
|
98
|
+
// should ignore the operation. Otherwise we update the searchValue in the
|
|
99
|
+
// state and componentDidUpdate is responsible for calling search. We also
|
|
100
|
+
// check to see if escape was pressed while the searchValue is empty, if so we
|
|
101
|
+
// close the Autosuggest by setting state to initialState.
|
|
95
102
|
_this.onSuggestionsFetchRequested = function (_ref3) {
|
|
96
103
|
var searchValue = _ref3.value,
|
|
97
104
|
reason = _ref3.reason;
|
|
@@ -108,6 +115,8 @@ var Typeahead = /*#__PURE__*/function (_React$Component) {
|
|
|
108
115
|
});
|
|
109
116
|
}
|
|
110
117
|
};
|
|
118
|
+
// This implementation assumes that this is only called on blur of the input
|
|
119
|
+
// because we are using the `alwaysRenderSuggestions` prop.
|
|
111
120
|
_this.onSuggestionsClearRequested = function () {
|
|
112
121
|
_this.setState(initialState);
|
|
113
122
|
};
|
|
@@ -118,6 +127,11 @@ var Typeahead = /*#__PURE__*/function (_React$Component) {
|
|
|
118
127
|
});
|
|
119
128
|
};
|
|
120
129
|
};
|
|
130
|
+
// Called when a suggestion is clicked or enter is pressed. For multiple mode
|
|
131
|
+
// we also reset the searchValue to an empty string and the Autosuggest will
|
|
132
|
+
// remain open. For single mode we close the Autosuggest entirely by setting
|
|
133
|
+
// state to initialState. Finally we call the onChange event to update the
|
|
134
|
+
// parent field.
|
|
121
135
|
_this.onSuggestionSelected = function (event, _ref4) {
|
|
122
136
|
var method = _ref4.method,
|
|
123
137
|
suggestion = _ref4.suggestion;
|
|
@@ -222,7 +236,6 @@ var Typeahead = /*#__PURE__*/function (_React$Component) {
|
|
|
222
236
|
// hopefully easier to comprehend. They are intended to be passed to the
|
|
223
237
|
// corresponding (by name) props of the Autosuggest component.
|
|
224
238
|
// https://github.com/moroshko/react-autosuggest#render-suggestions-container-prop
|
|
225
|
-
exports.Typeahead = Typeahead;
|
|
226
239
|
function renderSuggestionsContainer(_ref5) {
|
|
227
240
|
var containerProps = _ref5.containerProps,
|
|
228
241
|
children = _ref5.children;
|
|
@@ -61,20 +61,20 @@ var valueToCustomUser = function valueToCustomUser(_ref3) {
|
|
|
61
61
|
var getStatusProps = function getStatusProps(_ref4) {
|
|
62
62
|
var _ref4$search = _ref4.search,
|
|
63
63
|
search = _ref4$search === void 0 ? (0, _immutable.Map)() : _ref4$search,
|
|
64
|
-
_ref4$messages = _ref4.messages
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
_short = _ref4$
|
|
68
|
-
_ref4$
|
|
69
|
-
empty = _ref4$
|
|
70
|
-
_ref4$
|
|
71
|
-
custom = _ref4$
|
|
72
|
-
_ref4$
|
|
73
|
-
pending = _ref4$
|
|
74
|
-
_ref4$
|
|
75
|
-
more = _ref4$
|
|
76
|
-
_ref4$
|
|
77
|
-
error = _ref4$
|
|
64
|
+
_ref4$messages = _ref4.messages,
|
|
65
|
+
_ref4$messages2 = _ref4$messages === void 0 ? {} : _ref4$messages,
|
|
66
|
+
_ref4$messages2$short = _ref4$messages2["short"],
|
|
67
|
+
_short = _ref4$messages2$short === void 0 ? 'Type to find a user.' : _ref4$messages2$short,
|
|
68
|
+
_ref4$messages2$empty = _ref4$messages2.empty,
|
|
69
|
+
empty = _ref4$messages2$empty === void 0 ? 'No matching users.' : _ref4$messages2$empty,
|
|
70
|
+
_ref4$messages2$custo = _ref4$messages2.custom,
|
|
71
|
+
custom = _ref4$messages2$custo === void 0 ? 'No matching users. You may also enter a valid email.' : _ref4$messages2$custo,
|
|
72
|
+
_ref4$messages2$pendi = _ref4$messages2.pending,
|
|
73
|
+
pending = _ref4$messages2$pendi === void 0 ? 'Searching...' : _ref4$messages2$pendi,
|
|
74
|
+
_ref4$messages2$more = _ref4$messages2.more,
|
|
75
|
+
more = _ref4$messages2$more === void 0 ? "Too many users, first ".concat(search.get('limit') || '', " shown. Please refine your search.") : _ref4$messages2$more,
|
|
76
|
+
_ref4$messages2$error = _ref4$messages2.error,
|
|
77
|
+
error = _ref4$messages2$error === void 0 ? 'There was an error fetching users.' : _ref4$messages2$error;
|
|
78
78
|
return function (props) {
|
|
79
79
|
return {
|
|
80
80
|
meta: props.searchField ? "Find Users by ".concat(fields[props.searchField]) : null,
|
|
@@ -96,7 +96,7 @@ var getStatusProps = function getStatusProps(_ref4) {
|
|
|
96
96
|
};
|
|
97
97
|
};
|
|
98
98
|
};
|
|
99
|
-
var UserSelect = function UserSelect(props) {
|
|
99
|
+
var UserSelect = exports.UserSelect = function UserSelect(props) {
|
|
100
100
|
return /*#__PURE__*/_react["default"].createElement(_Typeahead.Typeahead, {
|
|
101
101
|
components: props.components || {},
|
|
102
102
|
disabled: props.disabled,
|
|
@@ -114,5 +114,4 @@ var UserSelect = function UserSelect(props) {
|
|
|
114
114
|
id: props.id,
|
|
115
115
|
form: props.form
|
|
116
116
|
});
|
|
117
|
-
};
|
|
118
|
-
exports.UserSelect = UserSelect;
|
|
117
|
+
};
|
|
@@ -8,7 +8,7 @@ exports["default"] = void 0;
|
|
|
8
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
|
|
9
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
|
|
10
10
|
var _axios = _interopRequireDefault(require("axios"));
|
|
11
|
-
var AuthInterceptor = /*#__PURE__*/function () {
|
|
11
|
+
var AuthInterceptor = exports["default"] = /*#__PURE__*/function () {
|
|
12
12
|
function AuthInterceptor(store, unauthenticatedAction, authenticatedSelector, cancelledSelector) {
|
|
13
13
|
(0, _classCallCheck2["default"])(this, AuthInterceptor);
|
|
14
14
|
this.store = store;
|
|
@@ -63,5 +63,4 @@ var AuthInterceptor = /*#__PURE__*/function () {
|
|
|
63
63
|
}
|
|
64
64
|
}]);
|
|
65
65
|
return AuthInterceptor;
|
|
66
|
-
}();
|
|
67
|
-
exports["default"] = AuthInterceptor;
|
|
66
|
+
}();
|
|
@@ -62,194 +62,182 @@ describe('AuthInterceptor', function () {
|
|
|
62
62
|
test('returns rejected promise with the given error if not 401', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee() {
|
|
63
63
|
var authInterceptor, error;
|
|
64
64
|
return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
|
|
65
|
-
while (1) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return _context.stop();
|
|
81
|
-
}
|
|
65
|
+
while (1) switch (_context.prev = _context.next) {
|
|
66
|
+
case 0:
|
|
67
|
+
authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector);
|
|
68
|
+
error = {
|
|
69
|
+
response: {
|
|
70
|
+
status: 400
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
_context.next = 4;
|
|
74
|
+
return expect(authInterceptor.handleRejected(error)).rejects.toBe(error);
|
|
75
|
+
case 4:
|
|
76
|
+
expect(authInterceptor.authPromise).toBeNull();
|
|
77
|
+
case 5:
|
|
78
|
+
case "end":
|
|
79
|
+
return _context.stop();
|
|
82
80
|
}
|
|
83
81
|
}, _callee);
|
|
84
82
|
})));
|
|
85
83
|
test('performs authentication workflow with successful login', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee2() {
|
|
86
84
|
var authInterceptor, error, rejectedCall;
|
|
87
85
|
return (0, _regeneratorRuntime2["default"])().wrap(function _callee2$(_context2) {
|
|
88
|
-
while (1) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
url: 'foo'
|
|
99
|
-
}
|
|
86
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
87
|
+
case 0:
|
|
88
|
+
authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector); // Mock an axios return value.
|
|
89
|
+
_axios["default"].mockReturnValue(Promise.resolve('Hello World'));
|
|
90
|
+
// Make a call to handleRejected that will trigger the auth functionality.
|
|
91
|
+
error = {
|
|
92
|
+
response: {
|
|
93
|
+
status: 401,
|
|
94
|
+
config: {
|
|
95
|
+
url: 'foo'
|
|
100
96
|
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
rejectedCall = authInterceptor.handleRejected(error); // It should dispatch the redux action using the action creator passed to
|
|
100
|
+
// the controller and start to listen to the store for success or cancel.
|
|
101
|
+
expect(store.actions).toEqual([{
|
|
102
|
+
type: 'TIMED_OUT'
|
|
103
|
+
}]);
|
|
104
|
+
expect(store.listeners.length).toBe(1);
|
|
105
|
+
expect(authInterceptor.authPromise).not.toBeNull();
|
|
106
|
+
// Simulate sucessful authentication and call the listener.
|
|
107
|
+
store.state.authenticated = true;
|
|
108
|
+
store.listeners[0]();
|
|
109
|
+
// The promse should be resolved with the axios resolved value. Also
|
|
110
|
+
// ensure that axios was called and that the listener is unsubscribed.
|
|
111
|
+
_context2.next = 11;
|
|
112
|
+
return expect(rejectedCall).resolves.toBe('Hello World');
|
|
113
|
+
case 11:
|
|
114
|
+
expect(_axios["default"].mock.calls).toEqual([[{
|
|
115
|
+
url: 'foo'
|
|
116
|
+
}]]);
|
|
117
|
+
expect(store.listeners.length).toBe(0);
|
|
118
|
+
expect(authInterceptor.authPromise).toBeNull();
|
|
119
|
+
case 14:
|
|
120
|
+
case "end":
|
|
121
|
+
return _context2.stop();
|
|
126
122
|
}
|
|
127
123
|
}, _callee2);
|
|
128
124
|
})));
|
|
129
125
|
test('performs authentication workflow with cancelled login', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee3() {
|
|
130
126
|
var authInterceptor, error, rejectedCall;
|
|
131
127
|
return (0, _regeneratorRuntime2["default"])().wrap(function _callee3$(_context3) {
|
|
132
|
-
while (1) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
url: 'foo'
|
|
141
|
-
}
|
|
128
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
129
|
+
case 0:
|
|
130
|
+
authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector); // Make a call to handleRejected that will trigger the auth functionality.
|
|
131
|
+
error = {
|
|
132
|
+
response: {
|
|
133
|
+
status: 401,
|
|
134
|
+
config: {
|
|
135
|
+
url: 'foo'
|
|
142
136
|
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
rejectedCall = authInterceptor.handleRejected(error); // It should dispatch the redux action using the action creator passed to
|
|
140
|
+
// the controller and start to listen to the store for success or cancel.
|
|
141
|
+
expect(store.actions).toEqual([{
|
|
142
|
+
type: 'TIMED_OUT'
|
|
143
|
+
}]);
|
|
144
|
+
expect(store.listeners.length).toBe(1);
|
|
145
|
+
expect(authInterceptor.authPromise).not.toBeNull();
|
|
146
|
+
// Simulate cancel and call the listener.
|
|
147
|
+
store.state.cancelled = true;
|
|
148
|
+
store.listeners[0]();
|
|
149
|
+
// The promse should be rejected with the original error object. Also
|
|
150
|
+
// ensure that axios is not called and that the listener is unsubscribed.
|
|
151
|
+
_context3.next = 10;
|
|
152
|
+
return expect(rejectedCall).rejects.toBe(error);
|
|
153
|
+
case 10:
|
|
154
|
+
expect(_axios["default"].mock.calls).toEqual([]);
|
|
155
|
+
expect(store.listeners.length).toBe(0);
|
|
156
|
+
expect(authInterceptor.authPromise).toBeNull();
|
|
157
|
+
case 13:
|
|
158
|
+
case "end":
|
|
159
|
+
return _context3.stop();
|
|
166
160
|
}
|
|
167
161
|
}, _callee3);
|
|
168
162
|
})));
|
|
169
163
|
test('creates one authPromise for multiple calls', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee4() {
|
|
170
164
|
var authInterceptor, error, authPromise1, authPromise2;
|
|
171
165
|
return (0, _regeneratorRuntime2["default"])().wrap(function _callee4$(_context4) {
|
|
172
|
-
while (1) {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
url: 'foo'
|
|
183
|
-
}
|
|
166
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
167
|
+
case 0:
|
|
168
|
+
authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector); // Should be null initially.
|
|
169
|
+
expect(authInterceptor.authPromise).toBeNull();
|
|
170
|
+
// Call handleRejected with the error object, should return a promise.
|
|
171
|
+
error = {
|
|
172
|
+
response: {
|
|
173
|
+
status: 401,
|
|
174
|
+
config: {
|
|
175
|
+
url: 'foo'
|
|
184
176
|
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
authInterceptor.handleRejected(error);
|
|
180
|
+
// Should now be set after a call to handleRejected.
|
|
181
|
+
authPromise1 = authInterceptor.authPromise;
|
|
182
|
+
expect(authPromise1).not.toBeNull();
|
|
183
|
+
// Second call to handleRejected should not change the value of the
|
|
184
|
+
// authPromise.
|
|
185
|
+
authInterceptor.handleRejected(error);
|
|
186
|
+
authPromise2 = authInterceptor.authPromise;
|
|
187
|
+
expect(authPromise1).toBe(authPromise2);
|
|
188
|
+
case 9:
|
|
189
|
+
case "end":
|
|
190
|
+
return _context4.stop();
|
|
199
191
|
}
|
|
200
192
|
}, _callee4);
|
|
201
193
|
})));
|
|
202
194
|
test('returns original error if authenticated selector returns true initially', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee5() {
|
|
203
195
|
var authInterceptor, error;
|
|
204
196
|
return (0, _regeneratorRuntime2["default"])().wrap(function _callee5$(_context5) {
|
|
205
|
-
while (1) {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
url: 'foo'
|
|
214
|
-
}
|
|
197
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
198
|
+
case 0:
|
|
199
|
+
authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector);
|
|
200
|
+
error = {
|
|
201
|
+
response: {
|
|
202
|
+
status: 401,
|
|
203
|
+
config: {
|
|
204
|
+
url: 'foo'
|
|
215
205
|
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
store.state.authenticated = true;
|
|
209
|
+
_context5.next = 5;
|
|
210
|
+
return expect(authInterceptor.handleRejected(error)).rejects.toBe(error);
|
|
211
|
+
case 5:
|
|
212
|
+
expect(authInterceptor.authPromise).toBeNull();
|
|
213
|
+
case 6:
|
|
214
|
+
case "end":
|
|
215
|
+
return _context5.stop();
|
|
226
216
|
}
|
|
227
217
|
}, _callee5);
|
|
228
218
|
})));
|
|
229
219
|
test('returns original error if cancelled selector returns true initially', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee6() {
|
|
230
220
|
var authInterceptor, error;
|
|
231
221
|
return (0, _regeneratorRuntime2["default"])().wrap(function _callee6$(_context6) {
|
|
232
|
-
while (1) {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
url: 'foo'
|
|
241
|
-
}
|
|
222
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
223
|
+
case 0:
|
|
224
|
+
authInterceptor = new _AuthInterceptor["default"](store, unauthenticatedAction, authenticatedSelector, cancelledSelector);
|
|
225
|
+
error = {
|
|
226
|
+
response: {
|
|
227
|
+
status: 401,
|
|
228
|
+
config: {
|
|
229
|
+
url: 'foo'
|
|
242
230
|
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
store.state.cancelled = true;
|
|
234
|
+
_context6.next = 5;
|
|
235
|
+
return expect(authInterceptor.handleRejected(error)).rejects.toBe(error);
|
|
236
|
+
case 5:
|
|
237
|
+
expect(authInterceptor.authPromise).toBeNull();
|
|
238
|
+
case 6:
|
|
239
|
+
case "end":
|
|
240
|
+
return _context6.stop();
|
|
253
241
|
}
|
|
254
242
|
}, _callee6);
|
|
255
243
|
})));
|