aboutsummaryrefslogtreecommitdiffstats
path: root/sdc-workflow-designer-ui/src/main/frontend/src/features/workflow/create/__tests__/createWorkflowSaga-test.js
diff options
context:
space:
mode:
Diffstat (limited to 'sdc-workflow-designer-ui/src/main/frontend/src/features/workflow/create/__tests__/createWorkflowSaga-test.js')
-rw-r--r--sdc-workflow-designer-ui/src/main/frontend/src/features/workflow/create/__tests__/createWorkflowSaga-test.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/sdc-workflow-designer-ui/src/main/frontend/src/features/workflow/create/__tests__/createWorkflowSaga-test.js b/sdc-workflow-designer-ui/src/main/frontend/src/features/workflow/create/__tests__/createWorkflowSaga-test.js
new file mode 100644
index 00000000..244a66de
--- /dev/null
+++ b/sdc-workflow-designer-ui/src/main/frontend/src/features/workflow/create/__tests__/createWorkflowSaga-test.js
@@ -0,0 +1,76 @@
+/*
+* Copyright © 2018 European Support Limited
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+ * http://www.apache.org/licenses/LICENSE-2.0
+*
+ * Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+import { call, takeEvery } from 'redux-saga/effects';
+import {
+ watchWorkflow,
+ watchSubmitWorkflow
+} from 'features/workflow/create/createWorkflowSaga';
+import { put } from 'redux-saga/effects';
+import newWorkflowApi from 'features/workflow/create/createWorkflowApi';
+import { SUBMIT_WORKFLOW } from 'features/workflow/create/createWorkflowConstants';
+import { submitVersionAction } from 'features/version/create/createVersionConstants';
+import { NEW_VERSION } from 'features/workflow/create/createWorkflowConstants';
+import {
+ setWorkflowAction,
+ clearWorkflowAction
+} from 'features/workflow/workflowConstants';
+import { genericNetworkErrorAction } from 'wfapp/appConstants';
+
+describe('New workflow saga test', () => {
+ it('Create new workflow', () => {
+ const gen = watchWorkflow();
+ expect(gen.next().value).toEqual(
+ takeEvery(SUBMIT_WORKFLOW, watchSubmitWorkflow)
+ );
+ expect(gen.next().done).toEqual(true);
+ });
+
+ it('Submit new workflow', () => {
+ const action = {
+ payload: {
+ name: 'workflow1',
+ description: 'description'
+ }
+ };
+ const gen = watchSubmitWorkflow(action);
+
+ /**
+ * expecting the error message to return as undefined
+ * from validateNameField method
+ */
+ expect(gen.next().value).toEqual(undefined);
+ expect(gen.next().value).toEqual(
+ call(newWorkflowApi.createNewWorkflow, action.payload)
+ );
+ const history = undefined,
+ workflowId = undefined;
+ expect(gen.next(action.payload).value).toEqual(
+ put(submitVersionAction({ history, workflowId, ...NEW_VERSION }))
+ );
+ expect(gen.next().value).toEqual(
+ put(setWorkflowAction({ ...action.payload, id: undefined }))
+ );
+ //handling errors
+ expect(gen.throw({ error: 'error' }).value).toEqual(
+ put(clearWorkflowAction)
+ );
+ expect(gen.next().value).toEqual(
+ put(genericNetworkErrorAction({ error: 'error' }))
+ );
+ expect(gen.next().done).toBe(true);
+ });
+});