diff --git a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApproval.test.jsx b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApproval.test.jsx
index 17dc835be4..1bec6f0970 100644
--- a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApproval.test.jsx
+++ b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApproval.test.jsx
@@ -6,7 +6,7 @@ import {
mountWithContexts,
waitForElement,
} from '../../../testUtils/enzymeHelpers';
-import mockDetails from './data.workflowApproval.json';
+import mockWorkflowApprovals from './data.workflowApprovals.json';
import WorkflowApproval from './WorkflowApproval';
jest.mock('../../api');
@@ -18,7 +18,9 @@ const mockMe = {
describe('', () => {
test('initially renders succesfully', async () => {
- WorkflowApprovalsAPI.readDetail.mockResolvedValue({ data: mockDetails });
+ WorkflowApprovalsAPI.readDetail.mockResolvedValue({
+ data: mockWorkflowApprovals.results[0],
+ });
await act(async () => {
mountWithContexts(
{}} me={mockMe} />
diff --git a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalDetail/WorkflowApprovalDetail.test.jsx b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalDetail/WorkflowApprovalDetail.test.jsx
index 9ea6f0bfa4..ff59b6ad01 100644
--- a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalDetail/WorkflowApprovalDetail.test.jsx
+++ b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalDetail/WorkflowApprovalDetail.test.jsx
@@ -7,7 +7,9 @@ import {
import { WorkflowApprovalsAPI } from '../../../api';
import { formatDateString } from '../../../util/dates';
import WorkflowApprovalDetail from './WorkflowApprovalDetail';
-import workflowApproval from '../data.workflowApproval.json';
+import mockWorkflowApprovals from '../data.workflowApprovals.json';
+
+const workflowApproval = mockWorkflowApprovals.results[0];
jest.mock('../../../api');
diff --git a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalList.test.jsx b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalList.test.jsx
index ee6391f28b..78a299d1ad 100644
--- a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalList.test.jsx
+++ b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalList.test.jsx
@@ -3,169 +3,17 @@ import { act } from 'react-dom/test-utils';
import { WorkflowApprovalsAPI } from '../../../api';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers';
import WorkflowApprovalList from './WorkflowApprovalList';
+import mockWorkflowApprovals from '../data.workflowApprovals.json';
jest.mock('../../../api');
-const mockWorkflowApprovals = [
- {
- id: 221,
- type: 'workflow_approval',
- url: '/api/v2/workflow_approvals/221/',
- related: {
- created_by: '/api/v2/users/1/',
- unified_job_template: '/api/v2/workflow_approval_templates/10/',
- source_workflow_job: '/api/v2/workflow_jobs/220/',
- workflow_approval_template: '/api/v2/workflow_approval_templates/10/',
- approve: '/api/v2/workflow_approvals/221/approve/',
- deny: '/api/v2/workflow_approvals/221/deny/',
- },
- summary_fields: {
- workflow_job_template: {
- id: 9,
- name: 'Approval @ 9:15:26 AM',
- description: '',
- },
- workflow_job: {
- id: 220,
- name: 'Approval @ 9:15:26 AM',
- description: '',
- },
- workflow_approval_template: {
- id: 10,
- name: 'approval copy',
- description: '',
- timeout: 30,
- },
- unified_job_template: {
- id: 10,
- name: 'approval copy',
- description: '',
- unified_job_type: 'workflow_approval',
- },
- created_by: {
- id: 1,
- username: 'admin',
- first_name: '',
- last_name: '',
- },
- user_capabilities: {
- delete: true,
- start: true,
- },
- source_workflow_job: {
- id: 220,
- name: 'Approval @ 9:15:26 AM',
- description: '',
- status: 'failed',
- failed: true,
- elapsed: 89.766,
- },
- },
- created: '2020-10-09T19:58:27.337904Z',
- modified: '2020-10-09T19:58:27.338000Z',
- name: 'approval copy',
- description: '',
- unified_job_template: 10,
- launch_type: 'workflow',
- status: 'failed',
- failed: true,
- started: '2020-10-09T19:58:27.337904Z',
- finished: '2020-10-09T19:59:26.974046Z',
- canceled_on: null,
- elapsed: 59.636,
- job_explanation:
- 'The approval node approval copy (221) has expired after 30 seconds.',
- can_approve_or_deny: false,
- approval_expiration: null,
- timed_out: true,
- },
- {
- id: 6,
- type: 'workflow_approval',
- url: '/api/v2/workflow_approvals/6/',
- related: {
- created_by: '/api/v2/users/1/',
- unified_job_template: '/api/v2/workflow_approval_templates/8/',
- source_workflow_job: '/api/v2/workflow_jobs/5/',
- workflow_approval_template: '/api/v2/workflow_approval_templates/8/',
- approve: '/api/v2/workflow_approvals/6/approve/',
- deny: '/api/v2/workflow_approvals/6/deny/',
- approved_or_denied_by: '/api/v2/users/1/',
- },
- summary_fields: {
- workflow_job_template: {
- id: 7,
- name: 'Approval',
- description: '',
- },
- workflow_job: {
- id: 5,
- name: 'Approval',
- description: '',
- },
- workflow_approval_template: {
- id: 8,
- name: 'approval',
- description: '',
- timeout: 0,
- },
- unified_job_template: {
- id: 8,
- name: 'approval',
- description: '',
- unified_job_type: 'workflow_approval',
- },
- approved_or_denied_by: {
- id: 1,
- username: 'admin',
- first_name: '',
- last_name: '',
- },
- created_by: {
- id: 1,
- username: 'admin',
- first_name: '',
- last_name: '',
- },
- user_capabilities: {
- delete: false,
- start: false,
- },
- source_workflow_job: {
- id: 5,
- name: 'Approval',
- description: '',
- status: 'successful',
- failed: false,
- elapsed: 168.233,
- },
- },
- created: '2020-10-05T20:14:53.875701Z',
- modified: '2020-10-05T20:17:41.211373Z',
- name: 'approval',
- description: '',
- unified_job_template: 8,
- launch_type: 'workflow',
- status: 'successful',
- failed: false,
- started: '2020-10-05T20:14:53.875701Z',
- finished: '2020-10-05T20:17:41.200738Z',
- canceled_on: null,
- elapsed: 167.325,
- job_explanation: '',
- can_approve_or_deny: false,
- approval_expiration: null,
- timed_out: false,
- },
-];
-
describe('', () => {
let wrapper;
beforeEach(() => {
WorkflowApprovalsAPI.read.mockResolvedValue({
data: {
- count: mockWorkflowApprovals.length,
- results: mockWorkflowApprovals,
+ count: mockWorkflowApprovals.results.length,
+ results: mockWorkflowApprovals.results,
},
});
@@ -191,7 +39,7 @@ describe('', () => {
});
wrapper.update();
- expect(wrapper.find('WorkflowApprovalListItem')).toHaveLength(2);
+ expect(wrapper.find('WorkflowApprovalListItem')).toHaveLength(3);
});
test('should select workflow approval when checked', async () => {
@@ -228,7 +76,7 @@ describe('', () => {
wrapper.update();
const items = wrapper.find('WorkflowApprovalListItem');
- expect(items).toHaveLength(2);
+ expect(items).toHaveLength(3);
items.forEach(item => {
expect(item.prop('isSelected')).toEqual(true);
});
@@ -250,7 +98,7 @@ describe('', () => {
await act(async () => {
wrapper
.find('WorkflowApprovalListItem')
- .at(1)
+ .at(2)
.invoke('onSelect')();
});
wrapper.update();
@@ -269,7 +117,7 @@ describe('', () => {
await act(async () => {
wrapper
.find('WorkflowApprovalListItem')
- .at(0)
+ .at(1)
.invoke('onSelect')();
});
wrapper.update();
@@ -300,7 +148,7 @@ describe('', () => {
await act(async () => {
wrapper
.find('WorkflowApprovalListItem')
- .at(0)
+ .at(1)
.invoke('onSelect')();
});
wrapper.update();
diff --git a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListApproveButton.test.jsx b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListApproveButton.test.jsx
index 0930b58bbc..949c07ec10 100644
--- a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListApproveButton.test.jsx
+++ b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListApproveButton.test.jsx
@@ -6,6 +6,7 @@ const workflowApproval = {
id: 1,
name: 'Foo',
can_approve_or_deny: true,
+ url: '/api/v2/workflow_approvals/218/',
};
describe('', () => {
diff --git a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListDenyButton.test.jsx b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListDenyButton.test.jsx
index 7ad7e6beee..a799ecf208 100644
--- a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListDenyButton.test.jsx
+++ b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListDenyButton.test.jsx
@@ -6,6 +6,7 @@ const workflowApproval = {
id: 1,
name: 'Foo',
can_approve_or_deny: true,
+ url: '/api/v2/workflow_approvals/218/',
};
describe('', () => {
diff --git a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListItem.test.jsx b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListItem.test.jsx
index a8ec7cf91c..2709ab2fa9 100644
--- a/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListItem.test.jsx
+++ b/awx/ui_next/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListItem.test.jsx
@@ -1,7 +1,9 @@
import React from 'react';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers';
import WorkflowApprovalListItem from './WorkflowApprovalListItem';
-import workflowApproval from '../data.workflowApproval.json';
+import mockWorkflowApprovals from '../data.workflowApprovals.json';
+
+const workflowApproval = mockWorkflowApprovals.results[0];
jest.mock('../../../api/models/WorkflowApprovals');
diff --git a/awx/ui_next/src/screens/WorkflowApproval/data.workflowApproval.json b/awx/ui_next/src/screens/WorkflowApproval/data.workflowApproval.json
deleted file mode 100644
index 29acd9615e..0000000000
--- a/awx/ui_next/src/screens/WorkflowApproval/data.workflowApproval.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "id": 218,
- "type": "workflow_approval",
- "url": "/api/v2/workflow_approvals/218/",
- "related": {
- "created_by": "/api/v2/users/1/",
- "unified_job_template": "/api/v2/workflow_approval_templates/10/",
- "source_workflow_job": "/api/v2/workflow_jobs/216/",
- "workflow_approval_template": "/api/v2/workflow_approval_templates/10/",
- "approve": "/api/v2/workflow_approvals/218/approve/",
- "deny": "/api/v2/workflow_approvals/218/deny/"
- },
- "summary_fields": {
- "workflow_job_template": {
- "id": 9,
- "name": "Approval @ 9:15:26 AM",
- "description": ""
- },
- "workflow_job": {
- "id": 216,
- "name": "Approval @ 9:15:26 AM",
- "description": ""
- },
- "workflow_approval_template": {
- "id": 10,
- "name": "approval copy",
- "description": "",
- "timeout": 0
- },
- "unified_job_template": {
- "id": 10,
- "name": "approval copy",
- "description": "",
- "unified_job_type": "workflow_approval"
- },
- "created_by": {
- "id": 1,
- "username": "admin",
- "first_name": "",
- "last_name": ""
- },
- "user_capabilities": {
- "delete": true,
- "start": true
- },
- "source_workflow_job": {
- "id": 216,
- "name": "Approval @ 9:15:26 AM",
- "description": "",
- "status": "running",
- "failed": false,
- "elapsed": 0.0
- }
- },
- "created": "2020-10-09T17:13:12.067947Z",
- "modified": "2020-10-09T17:13:12.068147Z",
- "name": "approval",
- "description": "description of approval",
- "unified_job_template": 10,
- "launch_type": "workflow",
- "status": "pending",
- "failed": false,
- "started": "2020-10-09T17:13:12.067947Z",
- "finished": null,
- "canceled_on": null,
- "elapsed": 22.879029,
- "job_explanation": "",
- "can_approve_or_deny": true,
- "approval_expiration": null,
- "timed_out": false
-}
diff --git a/awx/ui_next/src/screens/WorkflowApproval/data.workflowApprovals.json b/awx/ui_next/src/screens/WorkflowApproval/data.workflowApprovals.json
new file mode 100644
index 0000000000..c21ec3df98
--- /dev/null
+++ b/awx/ui_next/src/screens/WorkflowApproval/data.workflowApprovals.json
@@ -0,0 +1,227 @@
+{
+ "count": 3,
+ "next": "/api/v2/workflow_approvals/",
+ "previous": null,
+ "results": [
+ {
+ "id": 218,
+ "type": "workflow_approval",
+ "url": "/api/v2/workflow_approvals/218/",
+ "related": {
+ "created_by": "/api/v2/users/1/",
+ "unified_job_template": "/api/v2/workflow_approval_templates/10/",
+ "source_workflow_job": "/api/v2/workflow_jobs/216/",
+ "workflow_approval_template": "/api/v2/workflow_approval_templates/10/",
+ "approve": "/api/v2/workflow_approvals/218/approve/",
+ "deny": "/api/v2/workflow_approvals/218/deny/"
+ },
+ "summary_fields": {
+ "workflow_job_template": {
+ "id": 9,
+ "name": "Approval @ 9:15:26 AM",
+ "description": ""
+ },
+ "workflow_job": {
+ "id": 216,
+ "name": "Approval @ 9:15:26 AM",
+ "description": ""
+ },
+ "workflow_approval_template": {
+ "id": 10,
+ "name": "approval copy",
+ "description": "",
+ "timeout": 0
+ },
+ "unified_job_template": {
+ "id": 10,
+ "name": "approval copy",
+ "description": "",
+ "unified_job_type": "workflow_approval"
+ },
+ "created_by": {
+ "id": 1,
+ "username": "admin",
+ "first_name": "",
+ "last_name": ""
+ },
+ "user_capabilities": {
+ "delete": true,
+ "start": true
+ },
+ "source_workflow_job": {
+ "id": 216,
+ "name": "Approval @ 9:15:26 AM",
+ "description": "",
+ "status": "running",
+ "failed": false,
+ "elapsed": 0.0
+ }
+ },
+ "created": "2020-10-09T17:13:12.067947Z",
+ "modified": "2020-10-09T17:13:12.068147Z",
+ "name": "approval",
+ "description": "description of approval",
+ "unified_job_template": 10,
+ "launch_type": "workflow",
+ "status": "pending",
+ "failed": false,
+ "started": "2020-10-09T17:13:12.067947Z",
+ "finished": null,
+ "canceled_on": null,
+ "elapsed": 22.879029,
+ "job_explanation": "",
+ "can_approve_or_deny": true,
+ "approval_expiration": null,
+ "timed_out": false
+ },
+ {
+ "id": 221,
+ "type": "workflow_approval",
+ "url": "/api/v2/workflow_approvals/221/",
+ "related": {
+ "created_by": "/api/v2/users/1/",
+ "unified_job_template": "/api/v2/workflow_approval_templates/10/",
+ "source_workflow_job": "/api/v2/workflow_jobs/220/",
+ "workflow_approval_template": "/api/v2/workflow_approval_templates/10/",
+ "approve": "/api/v2/workflow_approvals/221/approve/",
+ "deny": "/api/v2/workflow_approvals/221/deny/"
+ },
+ "summary_fields": {
+ "workflow_job_template": {
+ "id": 9,
+ "name": "Approval @ 9:15:26 AM",
+ "description": ""
+ },
+ "workflow_job": {
+ "id": 220,
+ "name": "Approval @ 9:15:26 AM",
+ "description": ""
+ },
+ "workflow_approval_template": {
+ "id": 10,
+ "name": "approval copy",
+ "description": "",
+ "timeout": 30
+ },
+ "unified_job_template": {
+ "id": 10,
+ "name": "approval copy",
+ "description": "",
+ "unified_job_type": "workflow_approval"
+ },
+ "created_by": {
+ "id": 1,
+ "username": "admin",
+ "first_name": "",
+ "last_name": ""
+ },
+ "user_capabilities": {
+ "delete": true,
+ "start": true
+ },
+ "source_workflow_job": {
+ "id": 220,
+ "name": "Approval @ 9:15:26 AM",
+ "description": "",
+ "status": "failed",
+ "failed": true,
+ "elapsed": 89.766
+ }
+ },
+ "created": "2020-10-09T19:58:27.337904Z",
+ "modified": "2020-10-09T19:58:27.338000Z",
+ "name": "approval copy",
+ "description": "",
+ "unified_job_template": 10,
+ "launch_type": "workflow",
+ "status": "failed",
+ "failed": true,
+ "started": "2020-10-09T19:58:27.337904Z",
+ "finished": "2020-10-09T19:59:26.974046Z",
+ "canceled_on": null,
+ "elapsed": 59.636,
+ "job_explanation": "The approval node approval copy (221) has expired after 30 seconds.",
+ "can_approve_or_deny": false,
+ "approval_expiration": null,
+ "timed_out": true
+ },
+ {
+ "id": 6,
+ "type": "workflow_approval",
+ "url": "/api/v2/workflow_approvals/6/",
+ "related": {
+ "created_by": "/api/v2/users/1/",
+ "unified_job_template": "/api/v2/workflow_approval_templates/8/",
+ "source_workflow_job": "/api/v2/workflow_jobs/5/",
+ "workflow_approval_template": "/api/v2/workflow_approval_templates/8/",
+ "approve": "/api/v2/workflow_approvals/6/approve/",
+ "deny": "/api/v2/workflow_approvals/6/deny/",
+ "approved_or_denied_by": "/api/v2/users/1/"
+ },
+ "summary_fields": {
+ "workflow_job_template": {
+ "id": 7,
+ "name": "Approval",
+ "description": ""
+ },
+ "workflow_job": {
+ "id": 5,
+ "name": "Approval",
+ "description": ""
+ },
+ "workflow_approval_template": {
+ "id": 8,
+ "name": "approval",
+ "description": "",
+ "timeout": 0
+ },
+ "unified_job_template": {
+ "id": 8,
+ "name": "approval",
+ "description": "",
+ "unified_job_type": "workflow_approval"
+ },
+ "approved_or_denied_by": {
+ "id": 1,
+ "username": "admin",
+ "first_name": "",
+ "last_name": ""
+ },
+ "created_by": {
+ "id": 1,
+ "username": "admin",
+ "first_name": "",
+ "last_name": ""
+ },
+ "user_capabilities": {
+ "delete": false,
+ "start": false
+ },
+ "source_workflow_job": {
+ "id": 5,
+ "name": "Approval",
+ "description": "",
+ "status": "successful",
+ "failed": false,
+ "elapsed": 168.233
+ }
+ },
+ "created": "2020-10-05T20:14:53.875701Z",
+ "modified": "2020-10-05T20:17:41.211373Z",
+ "name": "approval",
+ "description": "",
+ "unified_job_template": 8,
+ "launch_type": "workflow",
+ "status": "successful",
+ "failed": false,
+ "started": "2020-10-05T20:14:53.875701Z",
+ "finished": "2020-10-05T20:17:41.200738Z",
+ "canceled_on": null,
+ "elapsed": 167.325,
+ "job_explanation": "",
+ "can_approve_or_deny": false,
+ "approval_expiration": null,
+ "timed_out": false
+ }
+ ]
+}
diff --git a/awx/ui_next/src/screens/WorkflowApproval/shared/WorkflowApprovalStatus.test.jsx b/awx/ui_next/src/screens/WorkflowApproval/shared/WorkflowApprovalStatus.test.jsx
index 3f8bd066cf..41d4965d26 100644
--- a/awx/ui_next/src/screens/WorkflowApproval/shared/WorkflowApprovalStatus.test.jsx
+++ b/awx/ui_next/src/screens/WorkflowApproval/shared/WorkflowApprovalStatus.test.jsx
@@ -2,7 +2,9 @@ import React from 'react';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers';
import { formatDateString } from '../../../util/dates';
import WorkflowApprovalStatus from './WorkflowApprovalStatus';
-import workflowApproval from '../data.workflowApproval.json';
+import mockWorkflowApprovals from '../data.workflowApprovals.json';
+
+const workflowApproval = mockWorkflowApprovals.results[0];
describe('', () => {
let wrapper;