From f72fca5fcf988588cc0e67ab78e80f864ef754dc Mon Sep 17 00:00:00 2001 From: kialam Date: Wed, 17 Oct 2018 09:31:34 -0400 Subject: [PATCH] Fix unit tests after "slice" rename. - Update Jobs List unit tests with new schema and test cases. - Update Job Details unit tests with new schema and test cases. - Test both for expected behavior when handling a regular non-sliced job. --- .../features/jobs/jobsList.controller.js | 6 +- .../components/job-details-split-jobs.unit.js | 63 +++++++------------ .../components/jobs-list-split-jobs.unit.js | 39 ++++++------ 3 files changed, 48 insertions(+), 60 deletions(-) diff --git a/awx/ui/client/features/jobs/jobsList.controller.js b/awx/ui/client/features/jobs/jobsList.controller.js index cd109b3a2c..1a1943c6c4 100644 --- a/awx/ui/client/features/jobs/jobsList.controller.js +++ b/awx/ui/client/features/jobs/jobsList.controller.js @@ -85,7 +85,11 @@ function ListJobsController ( return null; } - return `Slice Job ${job.job_slice_number}/${job.job_slice_count}`; + if (job.job_slice_number && job.job_slice_count) { + return `Slice Job ${job.job_slice_number}/${job.job_slice_count}`; + } + + return null; }; vm.getSref = ({ type, id }) => { diff --git a/awx/ui/test/unit/components/job-details-split-jobs.unit.js b/awx/ui/test/unit/components/job-details-split-jobs.unit.js index 8948ededc6..eb1a895ef2 100644 --- a/awx/ui/test/unit/components/job-details-split-jobs.unit.js +++ b/awx/ui/test/unit/components/job-details-split-jobs.unit.js @@ -16,19 +16,13 @@ describe('View: Job Details', () => { OutputStatusService; var mockData = { - summary_fields: { - internal_limit: { - shard: { - offset: 1, - step: 2, - } - } - }, + job_slice_count: 2, + job_slice_number: 2, labels: { - SPLIT_JOB: 'foo' + SLICE_JOB: 'foo' }, tooltips: { - SPLIT_JOB_DETAILS: 'bar' + SLICE_JOB_DETAILS: 'bar' } }; let resource = { @@ -117,12 +111,12 @@ describe('View: Job Details', () => { it('is created successfully', () => { expect(JobDetails).toBeDefined(); }); - it('has method "getSplitJobDetails"', () => { - expect(JobDetails.splitJobDetails).toBeDefined(); + it('has method "sliceJobDetails"', () => { + expect(JobDetails.sliceJobDetails).toBeDefined(); }); describe('splitJobDetails method', () => { it('returned values are strings', () => { - const result = JobDetails.splitJobDetails; + const result = JobDetails.sliceJobDetails; const { label, offset, tooltip } = result; expect(offset).toEqual('2/2'); expect(label).toEqual('foo'); @@ -130,14 +124,8 @@ describe('View: Job Details', () => { }); it('returns null if label, offset, or tooltip is undefined', () => { mockData = { - summary_fields: { - internal_limit: { - shard: { - offset: 1, - step: 2, - } - } - }, + job_slice_count: 2, + job_slice_number: 2, labels: { SPLIT_JOB: null }, @@ -146,14 +134,13 @@ describe('View: Job Details', () => { } }; JobDetails.$onInit(); - const result = JobDetails.splitJobDetails; + const result = JobDetails.sliceJobDetails; expect(result).toBeNull(); }); - it('returns null if summary_fields.internal_limit is undefined or null', () => { + it('returns null if job_slice_count is undefined or null', () => { mockData = { - summary_fields: { - internal_limit: undefined - }, + job_slice_count: null, + job_slice_number: 2, labels: { SPLIT_JOB: 'foo' }, @@ -162,16 +149,13 @@ describe('View: Job Details', () => { } }; JobDetails.$onInit(); - const result = JobDetails.splitJobDetails; + const result = JobDetails.sliceJobDetails; expect(result).toBeNull(); }); - it('returns null if summary_fields.internal_limit.shard is undefined or null', () => { + it('returns null if job_slice_number is undefined or null', () => { mockData = { - summary_fields: { - internal_limit: { - shard: undefined - } - }, + job_slice_count: 2, + job_slice_number: null, labels: { SPLIT_JOB: 'foo' }, @@ -180,16 +164,13 @@ describe('View: Job Details', () => { } }; JobDetails.$onInit(); - const result = JobDetails.splitJobDetails; + const result = JobDetails.sliceJobDetails; expect(result).toBeNull(); }); - it('returns null if summary_fields.internal_limit.shard is an empty object', () => { + it('returns null if job is a non-sliced job', () => { mockData = { - summary_fields: { - internal_limit: { - shard: {} - } - }, + job_slice_count: 1, + job_slice_number: null, labels: { SPLIT_JOB: 'foo' }, @@ -198,7 +179,7 @@ describe('View: Job Details', () => { } }; JobDetails.$onInit(); - const result = JobDetails.splitJobDetails; + const result = JobDetails.sliceJobDetails; expect(result).toBeNull(); }); }); diff --git a/awx/ui/test/unit/components/jobs-list-split-jobs.unit.js b/awx/ui/test/unit/components/jobs-list-split-jobs.unit.js index ffd0bdfaab..9c9a9dc3bc 100644 --- a/awx/ui/test/unit/components/jobs-list-split-jobs.unit.js +++ b/awx/ui/test/unit/components/jobs-list-split-jobs.unit.js @@ -89,35 +89,38 @@ describe('View: Split Jobs List', () => { expect(JobList).toBeDefined(); }); it('has method "getSplitJobDetails"', () => { - expect(JobList.getSplitJobDetails).toBeDefined(); + expect(JobList.getSliceJobDetails).toBeDefined(); }); it('returns a string', () => { let data = { - shard: { - offset: 1, - step: 2 - } + job_slice_number: 1, + job_slice_count: 2 } - const result = JobList.getSplitJobDetails(data); - expect(result).toEqual('Split Job 2/2'); + const result = JobList.getSliceJobDetails(data); + expect(result).toEqual('Slice Job 1/2'); }); - it('returns null when there is no data', () => { - let data = undefined; - const result = JobList.getSplitJobDetails(data); + it('returns null when data is null', () => { + let data = { + job_slice_number: null, + job_slice_count: null + } + const result = JobList.getSliceJobDetails(data); expect(result).toBeNull(); }); - it('returns null when there is no "shard" attribute', () => { + it('returns null when data is undefined', () => { let data = { - foo: {} - }; - const result = JobList.getSplitJobDetails(data); + job_slice_number: undefined, + job_slice_count: undefined + } + const result = JobList.getSliceJobDetails(data); expect(result).toBeNull(); }); - it('returns null when "shard" is an empty object', () => { + it('returns null when job is not a sliced job', () => { let data = { - shard: {} - }; - const result = JobList.getSplitJobDetails(data); + job_slice_number: null, + job_slice_count: 1 + } + const result = JobList.getSliceJobDetails(data); expect(result).toBeNull(); }); });