foreman-tasks 1.1.3 → 1.2.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.
- checksums.yaml +4 -4
- data/app/controllers/foreman_tasks/api/tasks_controller.rb +29 -1
- data/app/controllers/foreman_tasks/tasks_controller.rb +3 -11
- data/app/models/foreman_tasks/task.rb +4 -0
- data/app/models/setting/foreman_tasks.rb +1 -1
- data/app/services/ui_notifications/tasks/task_bulk_stop.rb +36 -0
- data/app/views/foreman_tasks/api/tasks/details.json.rabl +0 -1
- data/config/routes.rb +1 -0
- data/db/migrate/20200517215015_rename_bookmarks_controller.rb +35 -0
- data/db/migrate/20200519093217_drop_dynflow_allow_dangerous_actions_setting.foreman_tasks.rb +5 -0
- data/db/seeds.d/30-notification_blueprints.rb +7 -0
- data/lib/foreman_tasks/engine.rb +1 -1
- data/lib/foreman_tasks/tasks/cleanup.rake +2 -2
- data/lib/foreman_tasks/tasks/export_tasks.rake +1 -1
- data/lib/foreman_tasks/version.rb +1 -1
- data/locale/action_names.rb +1 -1
- data/locale/en/foreman_tasks.po +227 -41
- data/locale/foreman_tasks.pot +579 -288
- data/webpack/ForemanTasks/Components/TaskActions/TaskAction.test.js +60 -0
- data/webpack/ForemanTasks/Components/{TasksTable/TasksTableActionHelpers.js → TaskActions/TaskActionHelpers.js} +21 -6
- data/webpack/ForemanTasks/Components/{TasksTable/__tests__/TasksTableActionHelpers.test.js → TaskActions/TaskActionHelpers.test.js} +2 -2
- data/webpack/ForemanTasks/Components/TaskActions/TaskActionsConstants.js +16 -0
- data/webpack/ForemanTasks/Components/TaskActions/UnlockModals.js +60 -0
- data/webpack/ForemanTasks/Components/TaskActions/UnlockModals.test.js +14 -0
- data/webpack/ForemanTasks/Components/TaskActions/__snapshots__/TaskAction.test.js.snap +233 -0
- data/webpack/ForemanTasks/Components/TaskActions/__snapshots__/UnlockModals.test.js.snap +25 -0
- data/webpack/ForemanTasks/Components/TaskActions/index.js +115 -0
- data/webpack/ForemanTasks/Components/TaskDetails/Components/Task.js +130 -152
- data/webpack/ForemanTasks/Components/TaskDetails/Components/__tests__/Task.test.js +67 -3
- data/webpack/ForemanTasks/Components/TaskDetails/Components/__tests__/TaskInfo.test.js +0 -1
- data/webpack/ForemanTasks/Components/TaskDetails/Components/__tests__/__snapshots__/Task.test.js.snap +101 -70
- data/webpack/ForemanTasks/Components/TaskDetails/TaskDetailsActions.js +0 -15
- data/webpack/ForemanTasks/Components/TaskDetails/TaskDetailsConstants.js +0 -5
- data/webpack/ForemanTasks/Components/TaskDetails/TaskDetailsReducer.js +0 -6
- data/webpack/ForemanTasks/Components/TaskDetails/TaskDetailsSelectors.js +0 -9
- data/webpack/ForemanTasks/Components/TaskDetails/TasksDetailsHelper.js +6 -1
- data/webpack/ForemanTasks/Components/TaskDetails/__tests__/TaskDetails.test.js +5 -0
- data/webpack/ForemanTasks/Components/TaskDetails/__tests__/__snapshots__/TaskDetails.test.js.snap +2 -7
- data/webpack/ForemanTasks/Components/TaskDetails/__tests__/integration.test.js +4 -0
- data/webpack/ForemanTasks/Components/TaskDetails/index.js +4 -8
- data/webpack/ForemanTasks/Components/TasksTable/Components/ActionSelectButton.js +14 -1
- data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/ConfirmModal.js +83 -0
- data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/ConfirmModalActions.js +106 -0
- data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/ConfirmModalReducer.js +38 -0
- data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/ConfirmModalSelectors.js +45 -0
- data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/ConfirmModal.test.js +36 -0
- data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/ConfirmModalActions.test.js +205 -0
- data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/ConfirmModalReducer.test.js +27 -0
- data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/ConfirmModalSelectors.test.js +54 -0
- data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/__snapshots__/ConfirmModal.test.js.snap +41 -0
- data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/__snapshots__/ConfirmModalReducer.test.js.snap +19 -0
- data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/__test__/__snapshots__/ConfirmModalSelectors.test.js.snap +30 -0
- data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmModal/index.js +29 -0
- data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/ActionSelectButton.test.js +1 -0
- data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/__snapshots__/ActionSelectButton.test.js.snap +11 -0
- data/webpack/ForemanTasks/Components/TasksTable/TasksBulkActions.js +113 -30
- data/webpack/ForemanTasks/Components/TasksTable/TasksTable.js +13 -9
- data/webpack/ForemanTasks/Components/TasksTable/TasksTableActions.js +23 -63
- data/webpack/ForemanTasks/Components/TasksTable/TasksTableConstants.js +10 -12
- data/webpack/ForemanTasks/Components/TasksTable/TasksTablePage.js +24 -94
- data/webpack/ForemanTasks/Components/TasksTable/TasksTableSchema.js +2 -2
- data/webpack/ForemanTasks/Components/TasksTable/TasksTableSelectors.js +7 -4
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksBulkActions.test.js +35 -0
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTable.fixtures.js +2 -12
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/TasksTableActions.test.js +22 -26
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/SubTasksPage.test.js.snap +2 -14
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksBulkActions.test.js.snap +107 -0
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksIndexPage.test.js.snap +2 -14
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTableActions.test.js.snap +17 -124
- data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTablePage.test.js.snap +24 -128
- data/webpack/ForemanTasks/Components/TasksTable/index.js +2 -2
- data/webpack/ForemanTasks/Components/common/ActionButtons/ActionButton.js +47 -19
- data/webpack/ForemanTasks/Components/common/ActionButtons/ActionButton.test.js +61 -14
- data/webpack/ForemanTasks/Components/common/ActionButtons/__snapshots__/ActionButton.test.js.snap +80 -21
- data/webpack/ForemanTasks/Components/common/ClickConfirmation/ClickConfirmation.scss +9 -0
- data/webpack/ForemanTasks/Components/common/ClickConfirmation/ClickConfirmation.test.js +44 -0
- data/webpack/ForemanTasks/Components/common/ClickConfirmation/__snapshots__/ClickConfirmation.test.js.snap +52 -0
- data/webpack/ForemanTasks/Components/common/ClickConfirmation/index.js +59 -66
- data/webpack/ForemanTasks/Components/common/{ToastTypesConstants.js → ToastsHelpers/ToastTypesConstants.js} +0 -0
- data/webpack/ForemanTasks/Components/common/ToastsHelpers/index.js +15 -0
- data/webpack/ForemanTasks/ForemanTasksReducers.js +2 -0
- data/webpack/ForemanTasks/Routes/ForemanTasksRoutes.test.js +2 -1
- data/webpack/__mocks__/foremanReact/components/ForemanModal/ForemanModalHooks.js +2 -2
- data/webpack/__mocks__/foremanReact/components/ForemanModal/index.js +17 -3
- data/webpack/__mocks__/foremanReact/components/common/ActionButtons/ActionButtons.js +3 -0
- metadata +32 -22
- data/db/migrate/20200611090846_add_task_lock_index_on_resource_type_and_task_id.rb +0 -9
- data/lib/foreman_tasks/tasks/dynflow.rake +0 -6
- data/webpack/ForemanTasks/Components/TasksTable/Components/CancelConfirm.js +0 -53
- data/webpack/ForemanTasks/Components/TasksTable/Components/ConfirmationModals.js +0 -56
- data/webpack/ForemanTasks/Components/TasksTable/Components/ResumeConfirm.js +0 -52
- data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/CancelConfirm.test.js +0 -26
- data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/ConfirmationModals.test.js +0 -24
- data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/ResumeConfirm.test.js +0 -26
- data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/__snapshots__/CancelConfirm.test.js.snap +0 -65
- data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/__snapshots__/ConfirmationModals.test.js.snap +0 -30
- data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/__snapshots__/ResumeConfirm.test.js.snap +0 -63
- data/webpack/ForemanTasks/Components/common/ActionButtons/CancelButton.js +0 -23
- data/webpack/ForemanTasks/Components/common/ActionButtons/CancelButton.test.js +0 -26
- data/webpack/ForemanTasks/Components/common/ActionButtons/ResumeButton.js +0 -23
- data/webpack/ForemanTasks/Components/common/ActionButtons/ResumeButton.test.js +0 -27
- data/webpack/ForemanTasks/Components/common/ActionButtons/__snapshots__/CancelButton.test.js.snap +0 -15
- data/webpack/ForemanTasks/Components/common/ActionButtons/__snapshots__/ResumeButton.test.js.snap +0 -15
|
@@ -4,12 +4,6 @@ export const minProps = {
|
|
|
4
4
|
getTableItems: jest.fn(),
|
|
5
5
|
getBreadcrumbs: jest.fn(),
|
|
6
6
|
itemCount: 2,
|
|
7
|
-
cancelTask: jest.fn(),
|
|
8
|
-
resumeTask: jest.fn(),
|
|
9
|
-
bulkResumeById: jest.fn(),
|
|
10
|
-
bulkCancelById: jest.fn(),
|
|
11
|
-
bulkResumeBySearch: jest.fn(),
|
|
12
|
-
bulkCancelBySearch: jest.fn(),
|
|
13
7
|
selectPage: jest.fn(),
|
|
14
8
|
selectAllRows: jest.fn(),
|
|
15
9
|
unselectAllRows: jest.fn(),
|
|
@@ -27,12 +21,8 @@ export const minProps = {
|
|
|
27
21
|
order: 'w',
|
|
28
22
|
},
|
|
29
23
|
openClickedModal: jest.fn(),
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
resumeSelectedModal: {},
|
|
33
|
-
cancelModal: {},
|
|
34
|
-
resumeModal: {},
|
|
35
|
-
},
|
|
24
|
+
openModalAction: jest.fn(),
|
|
25
|
+
openModal: jest.fn(),
|
|
36
26
|
};
|
|
37
27
|
|
|
38
28
|
export default {
|
|
@@ -2,51 +2,31 @@ import {
|
|
|
2
2
|
testActionSnapshotWithFixtures,
|
|
3
3
|
IntegrationTestHelper,
|
|
4
4
|
} from '@theforeman/test';
|
|
5
|
-
import API from 'foremanReact/API';
|
|
6
5
|
import { TASKS_TABLE_ID } from '../TasksTableConstants';
|
|
7
6
|
import {
|
|
8
7
|
getTableItems,
|
|
9
8
|
cancelTask,
|
|
10
|
-
cancelTaskRequest,
|
|
11
9
|
resumeTask,
|
|
12
|
-
|
|
10
|
+
forceCancelTask,
|
|
13
11
|
selectPage,
|
|
12
|
+
openClickedModal,
|
|
13
|
+
openModalAction,
|
|
14
14
|
} from '../TasksTableActions';
|
|
15
15
|
|
|
16
16
|
jest.mock('foremanReact/components/common/table', () => ({
|
|
17
17
|
getTableItemsAction: jest.fn(controller => controller),
|
|
18
18
|
}));
|
|
19
19
|
|
|
20
|
-
jest.mock('foremanReact/API');
|
|
21
|
-
|
|
22
|
-
API.post.mockImplementation(() => ({ data: 'some-data' }));
|
|
23
|
-
|
|
24
20
|
const taskInfo = {
|
|
25
21
|
taskId: 'some-id',
|
|
26
22
|
taskName: 'some-name',
|
|
27
23
|
};
|
|
28
24
|
|
|
29
25
|
const fixtures = {
|
|
30
|
-
'should cancelTaskRequest and succeed': () =>
|
|
31
|
-
cancelTaskRequest('some-id', 'some-name'),
|
|
32
|
-
'should cancelTaskRequest and fail': () => {
|
|
33
|
-
API.post.mockImplementation(() =>
|
|
34
|
-
Promise.reject(new Error('Network Error'))
|
|
35
|
-
);
|
|
36
|
-
return cancelTaskRequest('some-id', 'some-name');
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
'should resumeTaskRequest and succeed': () => {
|
|
40
|
-
API.post.mockImplementation(() => ({ data: 'some-data' }));
|
|
41
|
-
return resumeTaskRequest('some-id', 'some-name');
|
|
42
|
-
},
|
|
43
|
-
'should resumeTaskRequest and fail': () => {
|
|
44
|
-
API.post.mockImplementation(() =>
|
|
45
|
-
Promise.reject(new Error('Network Error'))
|
|
46
|
-
);
|
|
47
|
-
return resumeTaskRequest('some-id', 'some-name');
|
|
48
|
-
},
|
|
49
26
|
'should selectPage and succeed': () => selectPage([{ id: 'some-id' }]),
|
|
27
|
+
'handles openClickedModal': () =>
|
|
28
|
+
openClickedModal({ ...taskInfo, setModalOpen: jest.fn() }),
|
|
29
|
+
'handles openModalAction': () => openModalAction('some-modal-id', jest.fn()),
|
|
50
30
|
};
|
|
51
31
|
describe('TasksTable actions', () => {
|
|
52
32
|
it('getTableItems should reuse common/table/getTableItemsAction', () => {
|
|
@@ -65,5 +45,21 @@ describe('TasksTable actions', () => {
|
|
|
65
45
|
await IntegrationTestHelper.flushAllPromises();
|
|
66
46
|
expect(dispatch.mock.calls).toHaveLength(3);
|
|
67
47
|
});
|
|
48
|
+
it('should forceCancelTask', async () => {
|
|
49
|
+
const dispatch = jest.fn();
|
|
50
|
+
forceCancelTask({ ...taskInfo, url: 'some-url' })(dispatch);
|
|
51
|
+
await IntegrationTestHelper.flushAllPromises();
|
|
52
|
+
expect(dispatch.mock.calls).toHaveLength(3);
|
|
53
|
+
});
|
|
54
|
+
it('openClickedModal opens modal', () => {
|
|
55
|
+
const setModalOpen = jest.fn();
|
|
56
|
+
openClickedModal({ ...taskInfo, setModalOpen });
|
|
57
|
+
expect(setModalOpen).toHaveBeenCalled();
|
|
58
|
+
});
|
|
59
|
+
it('openModalAction opens modal', () => {
|
|
60
|
+
const setModalOpen = jest.fn();
|
|
61
|
+
openModalAction('some-modal-id', setModalOpen);
|
|
62
|
+
expect(setModalOpen).toHaveBeenCalled();
|
|
63
|
+
});
|
|
68
64
|
testActionSnapshotWithFixtures(fixtures);
|
|
69
65
|
});
|
data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/SubTasksPage.test.js.snap
CHANGED
|
@@ -2,11 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`SubTasksPage rendering render with minimal props 1`] = `
|
|
4
4
|
<Connect(TasksTablePage)
|
|
5
|
-
bulkCancelById={[MockFunction]}
|
|
6
|
-
bulkCancelBySearch={[MockFunction]}
|
|
7
|
-
bulkResumeById={[MockFunction]}
|
|
8
|
-
bulkResumeBySearch={[MockFunction]}
|
|
9
|
-
cancelTask={[MockFunction]}
|
|
10
5
|
createHeader={[Function]}
|
|
11
6
|
getBreadcrumbs={[MockFunction]}
|
|
12
7
|
getTableItems={[MockFunction]}
|
|
@@ -25,15 +20,9 @@ exports[`SubTasksPage rendering render with minimal props 1`] = `
|
|
|
25
20
|
},
|
|
26
21
|
}
|
|
27
22
|
}
|
|
28
|
-
modalProps={
|
|
29
|
-
Object {
|
|
30
|
-
"cancelModal": Object {},
|
|
31
|
-
"cancelSelectedModal": Object {},
|
|
32
|
-
"resumeModal": Object {},
|
|
33
|
-
"resumeSelectedModal": Object {},
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
23
|
openClickedModal={[MockFunction]}
|
|
24
|
+
openModal={[MockFunction]}
|
|
25
|
+
openModalAction={[MockFunction]}
|
|
37
26
|
pagination={
|
|
38
27
|
Object {
|
|
39
28
|
"page": 1,
|
|
@@ -47,7 +36,6 @@ exports[`SubTasksPage rendering render with minimal props 1`] = `
|
|
|
47
36
|
"b",
|
|
48
37
|
]
|
|
49
38
|
}
|
|
50
|
-
resumeTask={[MockFunction]}
|
|
51
39
|
selectAllRows={[MockFunction]}
|
|
52
40
|
selectPage={[MockFunction]}
|
|
53
41
|
selectRow={[MockFunction]}
|
|
@@ -69,6 +69,113 @@ Array [
|
|
|
69
69
|
]
|
|
70
70
|
`;
|
|
71
71
|
|
|
72
|
+
exports[`TasksTable bulk actions handles bulkForceCancelById requests 1`] = `
|
|
73
|
+
Array [
|
|
74
|
+
Array [
|
|
75
|
+
Object {
|
|
76
|
+
"type": "TASKS_FORCE_CANCEL_REQUEST",
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
Array [
|
|
80
|
+
Object {
|
|
81
|
+
"type": "TASKS_FORCE_CANCEL_SUCCESS",
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
Array [
|
|
85
|
+
Object {
|
|
86
|
+
"payload": Object {
|
|
87
|
+
"message": Object {
|
|
88
|
+
"message": "2 task(s) cancelled with force",
|
|
89
|
+
"type": "success",
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
"type": "TOASTS_ADD",
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
Array [
|
|
96
|
+
Object {
|
|
97
|
+
"payload": Object {
|
|
98
|
+
"message": Object {
|
|
99
|
+
"message": "4 task(s) are already stopped",
|
|
100
|
+
"type": "warning",
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
"type": "TOASTS_ADD",
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
Array [
|
|
107
|
+
"TASKS_TABLE",
|
|
108
|
+
],
|
|
109
|
+
Array [
|
|
110
|
+
[Function],
|
|
111
|
+
],
|
|
112
|
+
]
|
|
113
|
+
`;
|
|
114
|
+
|
|
115
|
+
exports[`TasksTable bulk actions handles bulkForceCancelById requests that are stopped 1`] = `
|
|
116
|
+
Array [
|
|
117
|
+
Array [
|
|
118
|
+
Object {
|
|
119
|
+
"payload": Object {
|
|
120
|
+
"message": Object {
|
|
121
|
+
"message": "1 task(s) are already stopped",
|
|
122
|
+
"type": "warning",
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
"type": "TOASTS_ADD",
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
]
|
|
129
|
+
`;
|
|
130
|
+
|
|
131
|
+
exports[`TasksTable bulk actions handles bulkForceCancelById requests that fail 1`] = `
|
|
132
|
+
Array [
|
|
133
|
+
Array [
|
|
134
|
+
Object {
|
|
135
|
+
"type": "TASKS_FORCE_CANCEL_REQUEST",
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
Array [
|
|
139
|
+
Object {
|
|
140
|
+
"error": [Error: Network Error],
|
|
141
|
+
"type": "TASKS_FORCE_CANCEL_FAILURE",
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
Array [
|
|
145
|
+
Object {
|
|
146
|
+
"payload": Object {
|
|
147
|
+
"message": Object {
|
|
148
|
+
"message": "Cannot force cancel tasks at the moment Error: Network Error",
|
|
149
|
+
"type": "error",
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
"type": "TOASTS_ADD",
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
]
|
|
156
|
+
`;
|
|
157
|
+
|
|
158
|
+
exports[`TasksTable bulk actions handles bulkForceCancelBySearch requests 1`] = `
|
|
159
|
+
Array [
|
|
160
|
+
Array [
|
|
161
|
+
Object {
|
|
162
|
+
"type": "TASKS_FORCE_CANCEL_REQUEST",
|
|
163
|
+
},
|
|
164
|
+
],
|
|
165
|
+
Array [
|
|
166
|
+
Object {
|
|
167
|
+
"payload": Object {
|
|
168
|
+
"message": Object {
|
|
169
|
+
"message": "Canceling with force selected tasks, this might take a while",
|
|
170
|
+
"type": "info",
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
"type": "TOASTS_ADD",
|
|
174
|
+
},
|
|
175
|
+
],
|
|
176
|
+
]
|
|
177
|
+
`;
|
|
178
|
+
|
|
72
179
|
exports[`TasksTable bulk actions handles bulkResumeById requests that are not resumable 1`] = `
|
|
73
180
|
Array [
|
|
74
181
|
Array [
|
data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksIndexPage.test.js.snap
CHANGED
|
@@ -2,11 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`TasksIndexPage rendering render with minimal props 1`] = `
|
|
4
4
|
<Connect(TasksTablePage)
|
|
5
|
-
bulkCancelById={[MockFunction]}
|
|
6
|
-
bulkCancelBySearch={[MockFunction]}
|
|
7
|
-
bulkResumeById={[MockFunction]}
|
|
8
|
-
bulkResumeBySearch={[MockFunction]}
|
|
9
|
-
cancelTask={[MockFunction]}
|
|
10
5
|
getBreadcrumbs={[MockFunction]}
|
|
11
6
|
getTableItems={[MockFunction]}
|
|
12
7
|
history={
|
|
@@ -17,15 +12,9 @@ exports[`TasksIndexPage rendering render with minimal props 1`] = `
|
|
|
17
12
|
}
|
|
18
13
|
}
|
|
19
14
|
itemCount={2}
|
|
20
|
-
modalProps={
|
|
21
|
-
Object {
|
|
22
|
-
"cancelModal": Object {},
|
|
23
|
-
"cancelSelectedModal": Object {},
|
|
24
|
-
"resumeModal": Object {},
|
|
25
|
-
"resumeSelectedModal": Object {},
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
15
|
openClickedModal={[MockFunction]}
|
|
16
|
+
openModal={[MockFunction]}
|
|
17
|
+
openModalAction={[MockFunction]}
|
|
29
18
|
pagination={
|
|
30
19
|
Object {
|
|
31
20
|
"page": 1,
|
|
@@ -38,7 +27,6 @@ exports[`TasksIndexPage rendering render with minimal props 1`] = `
|
|
|
38
27
|
"b",
|
|
39
28
|
]
|
|
40
29
|
}
|
|
41
|
-
resumeTask={[MockFunction]}
|
|
42
30
|
selectAllRows={[MockFunction]}
|
|
43
31
|
selectPage={[MockFunction]}
|
|
44
32
|
selectRow={[MockFunction]}
|
|
@@ -1,131 +1,24 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
-
exports[`TasksTable actions
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Object {
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"type": "TOASTS_ADD",
|
|
14
|
-
},
|
|
15
|
-
],
|
|
16
|
-
Array [
|
|
17
|
-
Object {
|
|
18
|
-
"type": "TASKS_CANCEL_REQUEST",
|
|
19
|
-
},
|
|
20
|
-
],
|
|
21
|
-
Array [
|
|
22
|
-
Object {
|
|
23
|
-
"payload": undefined,
|
|
24
|
-
"type": "TASKS_CANCEL_FAILURE",
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
Array [
|
|
28
|
-
Object {
|
|
29
|
-
"payload": Object {
|
|
30
|
-
"message": Object {
|
|
31
|
-
"message": "some-name Task execution task has to be cancellable",
|
|
32
|
-
"type": "warning",
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
"type": "TOASTS_ADD",
|
|
36
|
-
},
|
|
37
|
-
],
|
|
38
|
-
]
|
|
39
|
-
`;
|
|
40
|
-
|
|
41
|
-
exports[`TasksTable actions should cancelTaskRequest and succeed 1`] = `
|
|
42
|
-
Array [
|
|
43
|
-
Array [
|
|
44
|
-
Object {
|
|
45
|
-
"payload": Object {
|
|
46
|
-
"message": Object {
|
|
47
|
-
"message": "Trying to cancel some-name task",
|
|
48
|
-
"type": "info",
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
"type": "TOASTS_ADD",
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
Array [
|
|
55
|
-
Object {
|
|
56
|
-
"type": "TASKS_CANCEL_REQUEST",
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
Array [
|
|
60
|
-
Object {
|
|
61
|
-
"type": "TASKS_CANCEL_SUCCESS",
|
|
62
|
-
},
|
|
63
|
-
],
|
|
64
|
-
Array [
|
|
65
|
-
Object {
|
|
66
|
-
"payload": Object {
|
|
67
|
-
"message": Object {
|
|
68
|
-
"message": "some-name Task execution was cancelled",
|
|
69
|
-
"type": "success",
|
|
70
|
-
},
|
|
71
|
-
},
|
|
72
|
-
"type": "TOASTS_ADD",
|
|
73
|
-
},
|
|
74
|
-
],
|
|
75
|
-
]
|
|
76
|
-
`;
|
|
77
|
-
|
|
78
|
-
exports[`TasksTable actions should resumeTaskRequest and fail 1`] = `
|
|
79
|
-
Array [
|
|
80
|
-
Array [
|
|
81
|
-
Object {
|
|
82
|
-
"type": "TASKS_RESUME_REQUEST",
|
|
83
|
-
},
|
|
84
|
-
],
|
|
85
|
-
Array [
|
|
86
|
-
Object {
|
|
87
|
-
"payload": undefined,
|
|
88
|
-
"type": "TASKS_RESUME_FAILURE",
|
|
89
|
-
},
|
|
90
|
-
],
|
|
91
|
-
Array [
|
|
92
|
-
Object {
|
|
93
|
-
"payload": Object {
|
|
94
|
-
"message": Object {
|
|
95
|
-
"message": "some-name Task execution could not be resumed",
|
|
96
|
-
"type": "error",
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
"type": "TOASTS_ADD",
|
|
100
|
-
},
|
|
101
|
-
],
|
|
102
|
-
]
|
|
3
|
+
exports[`TasksTable actions handles openClickedModal 1`] = `
|
|
4
|
+
Object {
|
|
5
|
+
"payload": Object {
|
|
6
|
+
"clicked": Object {
|
|
7
|
+
"taskId": "some-id",
|
|
8
|
+
"taskName": "some-name",
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
"type": "UPDATE_CLICKED",
|
|
12
|
+
}
|
|
103
13
|
`;
|
|
104
14
|
|
|
105
|
-
exports[`TasksTable actions
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
Array [
|
|
113
|
-
Object {
|
|
114
|
-
"type": "TASKS_RESUME_SUCCESS",
|
|
115
|
-
},
|
|
116
|
-
],
|
|
117
|
-
Array [
|
|
118
|
-
Object {
|
|
119
|
-
"payload": Object {
|
|
120
|
-
"message": Object {
|
|
121
|
-
"message": "some-name Task execution was resumed",
|
|
122
|
-
"type": "success",
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
"type": "TOASTS_ADD",
|
|
126
|
-
},
|
|
127
|
-
],
|
|
128
|
-
]
|
|
15
|
+
exports[`TasksTable actions handles openModalAction 1`] = `
|
|
16
|
+
Object {
|
|
17
|
+
"payload": Object {
|
|
18
|
+
"modalID": "some-modal-id",
|
|
19
|
+
},
|
|
20
|
+
"type": "UPDATE_MODAL",
|
|
21
|
+
}
|
|
129
22
|
`;
|
|
130
23
|
|
|
131
24
|
exports[`TasksTable actions should selectPage and succeed 1`] = `
|
data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTablePage.test.js.snap
CHANGED
|
@@ -4,40 +4,16 @@ exports[`TasksTablePage rendering render with Breadcrubs 1`] = `
|
|
|
4
4
|
<div
|
|
5
5
|
className="tasks-table-wrapper"
|
|
6
6
|
>
|
|
7
|
-
<
|
|
8
|
-
|
|
7
|
+
<Connect(ConfirmModal)
|
|
8
|
+
id="ConfirmModal"
|
|
9
|
+
parentTaskID={null}
|
|
10
|
+
setModalClosed={[MockFunction]}
|
|
11
|
+
uriQuery={
|
|
9
12
|
Object {
|
|
10
|
-
"
|
|
11
|
-
"modalOpen": true,
|
|
12
|
-
"setModalClosed": [MockFunction],
|
|
13
|
-
"setModalOpen": [MockFunction],
|
|
14
|
-
},
|
|
15
|
-
"cancelSelectedModal": Object {
|
|
16
|
-
"modalOpen": true,
|
|
17
|
-
"setModalClosed": [MockFunction],
|
|
18
|
-
"setModalOpen": [MockFunction],
|
|
19
|
-
},
|
|
20
|
-
"resumeModal": Object {
|
|
21
|
-
"modalOpen": true,
|
|
22
|
-
"setModalClosed": [MockFunction],
|
|
23
|
-
"setModalOpen": [MockFunction],
|
|
24
|
-
},
|
|
25
|
-
"resumeSelectedModal": Object {
|
|
26
|
-
"modalOpen": true,
|
|
27
|
-
"setModalClosed": [MockFunction],
|
|
28
|
-
"setModalOpen": [MockFunction],
|
|
29
|
-
},
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
selectedRowsLen={0}
|
|
33
|
-
tasksActions={
|
|
34
|
-
Object {
|
|
35
|
-
"cancelSelectedTasks": [Function],
|
|
36
|
-
"cancelTask": [Function],
|
|
37
|
-
"resumeSelectedTasks": [Function],
|
|
38
|
-
"resumeTask": [Function],
|
|
13
|
+
"state": "stopped",
|
|
39
14
|
}
|
|
40
15
|
}
|
|
16
|
+
url="/foreman_tasks/tasks?action=\\"some-name\\""
|
|
41
17
|
/>
|
|
42
18
|
<PageLayout
|
|
43
19
|
beforeToolbarComponent={
|
|
@@ -85,7 +61,7 @@ exports[`TasksTablePage rendering render with Breadcrubs 1`] = `
|
|
|
85
61
|
"documentationUrl": "4.1.5Searching",
|
|
86
62
|
"url": "/api/bookmarks",
|
|
87
63
|
},
|
|
88
|
-
"controller": "
|
|
64
|
+
"controller": "foreman_tasks_tasks",
|
|
89
65
|
}
|
|
90
66
|
}
|
|
91
67
|
searchQuery="a=b"
|
|
@@ -106,8 +82,9 @@ exports[`TasksTablePage rendering render with Breadcrubs 1`] = `
|
|
|
106
82
|
/>
|
|
107
83
|
<ActionSelectButton
|
|
108
84
|
disabled={true}
|
|
109
|
-
onCancel={[
|
|
110
|
-
|
|
85
|
+
onCancel={[Function]}
|
|
86
|
+
onForceCancel={[Function]}
|
|
87
|
+
onResume={[Function]}
|
|
111
88
|
/>
|
|
112
89
|
</React.Fragment>
|
|
113
90
|
}
|
|
@@ -115,11 +92,6 @@ exports[`TasksTablePage rendering render with Breadcrubs 1`] = `
|
|
|
115
92
|
<TasksTable
|
|
116
93
|
actionName=""
|
|
117
94
|
allRowsSelected={false}
|
|
118
|
-
bulkCancelById={[MockFunction]}
|
|
119
|
-
bulkCancelBySearch={[MockFunction]}
|
|
120
|
-
bulkResumeById={[MockFunction]}
|
|
121
|
-
bulkResumeBySearch={[MockFunction]}
|
|
122
|
-
cancelTask={[MockFunction]}
|
|
123
95
|
error={null}
|
|
124
96
|
getTableItems={[MockFunction]}
|
|
125
97
|
history={
|
|
@@ -131,31 +103,8 @@ exports[`TasksTablePage rendering render with Breadcrubs 1`] = `
|
|
|
131
103
|
}
|
|
132
104
|
}
|
|
133
105
|
itemCount={2}
|
|
134
|
-
modalProps={
|
|
135
|
-
Object {
|
|
136
|
-
"cancelModal": Object {
|
|
137
|
-
"modalOpen": true,
|
|
138
|
-
"setModalClosed": [MockFunction],
|
|
139
|
-
"setModalOpen": [MockFunction],
|
|
140
|
-
},
|
|
141
|
-
"cancelSelectedModal": Object {
|
|
142
|
-
"modalOpen": true,
|
|
143
|
-
"setModalClosed": [MockFunction],
|
|
144
|
-
"setModalOpen": [MockFunction],
|
|
145
|
-
},
|
|
146
|
-
"resumeModal": Object {
|
|
147
|
-
"modalOpen": true,
|
|
148
|
-
"setModalClosed": [MockFunction],
|
|
149
|
-
"setModalOpen": [MockFunction],
|
|
150
|
-
},
|
|
151
|
-
"resumeSelectedModal": Object {
|
|
152
|
-
"modalOpen": true,
|
|
153
|
-
"setModalClosed": [MockFunction],
|
|
154
|
-
"setModalOpen": [MockFunction],
|
|
155
|
-
},
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
106
|
openClickedModal={[MockFunction]}
|
|
107
|
+
openModal={[Function]}
|
|
159
108
|
pagination={
|
|
160
109
|
Object {
|
|
161
110
|
"page": 1,
|
|
@@ -169,7 +118,6 @@ exports[`TasksTablePage rendering render with Breadcrubs 1`] = `
|
|
|
169
118
|
"b",
|
|
170
119
|
]
|
|
171
120
|
}
|
|
172
|
-
resumeTask={[MockFunction]}
|
|
173
121
|
selectPage={[MockFunction]}
|
|
174
122
|
selectRow={[MockFunction]}
|
|
175
123
|
selectedRows={Array []}
|
|
@@ -191,40 +139,16 @@ exports[`TasksTablePage rendering render with minimal props 1`] = `
|
|
|
191
139
|
<div
|
|
192
140
|
className="tasks-table-wrapper"
|
|
193
141
|
>
|
|
194
|
-
<
|
|
195
|
-
|
|
142
|
+
<Connect(ConfirmModal)
|
|
143
|
+
id="ConfirmModal"
|
|
144
|
+
parentTaskID={null}
|
|
145
|
+
setModalClosed={[MockFunction]}
|
|
146
|
+
uriQuery={
|
|
196
147
|
Object {
|
|
197
|
-
"
|
|
198
|
-
"modalOpen": true,
|
|
199
|
-
"setModalClosed": [MockFunction],
|
|
200
|
-
"setModalOpen": [MockFunction],
|
|
201
|
-
},
|
|
202
|
-
"cancelSelectedModal": Object {
|
|
203
|
-
"modalOpen": true,
|
|
204
|
-
"setModalClosed": [MockFunction],
|
|
205
|
-
"setModalOpen": [MockFunction],
|
|
206
|
-
},
|
|
207
|
-
"resumeModal": Object {
|
|
208
|
-
"modalOpen": true,
|
|
209
|
-
"setModalClosed": [MockFunction],
|
|
210
|
-
"setModalOpen": [MockFunction],
|
|
211
|
-
},
|
|
212
|
-
"resumeSelectedModal": Object {
|
|
213
|
-
"modalOpen": true,
|
|
214
|
-
"setModalClosed": [MockFunction],
|
|
215
|
-
"setModalOpen": [MockFunction],
|
|
216
|
-
},
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
selectedRowsLen={0}
|
|
220
|
-
tasksActions={
|
|
221
|
-
Object {
|
|
222
|
-
"cancelSelectedTasks": [Function],
|
|
223
|
-
"cancelTask": [Function],
|
|
224
|
-
"resumeSelectedTasks": [Function],
|
|
225
|
-
"resumeTask": [Function],
|
|
148
|
+
"state": "stopped",
|
|
226
149
|
}
|
|
227
150
|
}
|
|
151
|
+
url="/foreman_tasks/tasks?action=\\"some-name\\""
|
|
228
152
|
/>
|
|
229
153
|
<PageLayout
|
|
230
154
|
beforeToolbarComponent={
|
|
@@ -255,7 +179,7 @@ exports[`TasksTablePage rendering render with minimal props 1`] = `
|
|
|
255
179
|
"documentationUrl": "4.1.5Searching",
|
|
256
180
|
"url": "/api/bookmarks",
|
|
257
181
|
},
|
|
258
|
-
"controller": "
|
|
182
|
+
"controller": "foreman_tasks_tasks",
|
|
259
183
|
}
|
|
260
184
|
}
|
|
261
185
|
searchQuery="a=b"
|
|
@@ -276,8 +200,9 @@ exports[`TasksTablePage rendering render with minimal props 1`] = `
|
|
|
276
200
|
/>
|
|
277
201
|
<ActionSelectButton
|
|
278
202
|
disabled={true}
|
|
279
|
-
onCancel={[
|
|
280
|
-
|
|
203
|
+
onCancel={[Function]}
|
|
204
|
+
onForceCancel={[Function]}
|
|
205
|
+
onResume={[Function]}
|
|
281
206
|
/>
|
|
282
207
|
</React.Fragment>
|
|
283
208
|
}
|
|
@@ -285,11 +210,6 @@ exports[`TasksTablePage rendering render with minimal props 1`] = `
|
|
|
285
210
|
<TasksTable
|
|
286
211
|
actionName=""
|
|
287
212
|
allRowsSelected={false}
|
|
288
|
-
bulkCancelById={[MockFunction]}
|
|
289
|
-
bulkCancelBySearch={[MockFunction]}
|
|
290
|
-
bulkResumeById={[MockFunction]}
|
|
291
|
-
bulkResumeBySearch={[MockFunction]}
|
|
292
|
-
cancelTask={[MockFunction]}
|
|
293
213
|
error={null}
|
|
294
214
|
getTableItems={[MockFunction]}
|
|
295
215
|
history={
|
|
@@ -301,31 +221,8 @@ exports[`TasksTablePage rendering render with minimal props 1`] = `
|
|
|
301
221
|
}
|
|
302
222
|
}
|
|
303
223
|
itemCount={2}
|
|
304
|
-
modalProps={
|
|
305
|
-
Object {
|
|
306
|
-
"cancelModal": Object {
|
|
307
|
-
"modalOpen": true,
|
|
308
|
-
"setModalClosed": [MockFunction],
|
|
309
|
-
"setModalOpen": [MockFunction],
|
|
310
|
-
},
|
|
311
|
-
"cancelSelectedModal": Object {
|
|
312
|
-
"modalOpen": true,
|
|
313
|
-
"setModalClosed": [MockFunction],
|
|
314
|
-
"setModalOpen": [MockFunction],
|
|
315
|
-
},
|
|
316
|
-
"resumeModal": Object {
|
|
317
|
-
"modalOpen": true,
|
|
318
|
-
"setModalClosed": [MockFunction],
|
|
319
|
-
"setModalOpen": [MockFunction],
|
|
320
|
-
},
|
|
321
|
-
"resumeSelectedModal": Object {
|
|
322
|
-
"modalOpen": true,
|
|
323
|
-
"setModalClosed": [MockFunction],
|
|
324
|
-
"setModalOpen": [MockFunction],
|
|
325
|
-
},
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
224
|
openClickedModal={[MockFunction]}
|
|
225
|
+
openModal={[Function]}
|
|
329
226
|
pagination={
|
|
330
227
|
Object {
|
|
331
228
|
"page": 1,
|
|
@@ -339,7 +236,6 @@ exports[`TasksTablePage rendering render with minimal props 1`] = `
|
|
|
339
236
|
"b",
|
|
340
237
|
]
|
|
341
238
|
}
|
|
342
|
-
resumeTask={[MockFunction]}
|
|
343
239
|
selectPage={[MockFunction]}
|
|
344
240
|
selectRow={[MockFunction]}
|
|
345
241
|
selectedRows={Array []}
|