mirror of
https://github.com/ansible/awx.git
synced 2026-01-15 20:00:43 -03:30
Add unit tests for Job Details
- Test `getSplitJobDetails` method. - Fix failing tests. - Rename unit tests.
This commit is contained in:
parent
65a0e5ed45
commit
21aeda0f45
@ -143,7 +143,10 @@ function getSliceJobDetails () {
|
||||
const offset = `${number}/${count}`;
|
||||
const tooltip = strings.get('tooltips.SLICE_JOB_DETAILS');
|
||||
|
||||
return { label, offset, tooltip };
|
||||
if (label && offset && tooltip) {
|
||||
return { label, offset, tooltip };
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function getJobTemplateDetails () {
|
||||
|
||||
@ -6,5 +6,6 @@ import './file.unit';
|
||||
import './layout.unit';
|
||||
import './side-nav.unit';
|
||||
import './side-nav-item.unit';
|
||||
import './split-jobs.unit';
|
||||
import './jobs-list-split-jobs.unit';
|
||||
import './job-details-split-jobs.unit';
|
||||
|
||||
|
||||
206
awx/ui/test/unit/components/job-details-split-jobs.unit.js
Normal file
206
awx/ui/test/unit/components/job-details-split-jobs.unit.js
Normal file
@ -0,0 +1,206 @@
|
||||
'use strict';
|
||||
import moment from 'moment';
|
||||
|
||||
describe('View: Job Details', () => {
|
||||
let JobDetails,
|
||||
scope,
|
||||
state,
|
||||
OutputStrings,
|
||||
Prompt,
|
||||
filter,
|
||||
ProcessErrors,
|
||||
Wait,
|
||||
httpBackend,
|
||||
ParseVariableString,
|
||||
subscribe,
|
||||
OutputStatusService;
|
||||
|
||||
var mockData = {
|
||||
summary_fields: {
|
||||
internal_limit: {
|
||||
shard: {
|
||||
offset: 1,
|
||||
step: 2,
|
||||
}
|
||||
}
|
||||
},
|
||||
labels: {
|
||||
SPLIT_JOB: 'foo'
|
||||
},
|
||||
tooltips: {
|
||||
SPLIT_JOB_DETAILS: 'bar'
|
||||
}
|
||||
};
|
||||
let resource = {
|
||||
id: '147',
|
||||
type: 'playbook',
|
||||
model: {
|
||||
get: (obj) => {
|
||||
return obj.split('.').reduce((i,o) => i && i[o] || null, mockData);
|
||||
},
|
||||
has: jasmine.createSpy('has'),
|
||||
options: jasmine.createSpy('options'),
|
||||
},
|
||||
events: {},
|
||||
ws: {}
|
||||
};
|
||||
|
||||
beforeEach(angular.mock.module('at.features.output', ($provide) => {
|
||||
state = {
|
||||
params: {
|
||||
job_search: {}
|
||||
},
|
||||
go: jasmine.createSpy('go'),
|
||||
includes: jasmine.createSpy('includes')
|
||||
}
|
||||
|
||||
OutputStrings = {
|
||||
get: (obj) => {
|
||||
return obj.split('.').reduce((i,o) => i && i[o] || null, mockData);
|
||||
},
|
||||
}
|
||||
|
||||
OutputStatusService = {
|
||||
subscribe: jasmine.createSpy('subscribe')
|
||||
};
|
||||
|
||||
ProcessErrors = jasmine.createSpy('ProcessErrors');
|
||||
Wait = jasmine.createSpy('Wait');
|
||||
Prompt = jasmine.createSpy('Prompt');
|
||||
|
||||
$provide.value('state', state);
|
||||
$provide.value('ProcessErrors', ProcessErrors);
|
||||
$provide.value('Wait', Wait);
|
||||
$provide.value('Prompt', Prompt);
|
||||
$provide.value('OutputStrings', OutputStrings);
|
||||
$provide.value('ParseVariableString', angular.noop);
|
||||
$provide.value('OutputStatusService', OutputStatusService);
|
||||
|
||||
$provide.provider('$stateProvider', { '$get': function() { return function() {}; } });
|
||||
$provide.value('$stateExtender', { addState: jasmine.createSpy('addState'), });
|
||||
$provide.value('$stateRegistry', { register: jasmine.createSpy('regster'), });
|
||||
$provide.value('sanitizeFilter', angular.noop);
|
||||
$provide.value('subscribe', subscribe);
|
||||
$provide.value('moment', moment);
|
||||
$provide.value('longDateFilter', angular.noop);
|
||||
}));
|
||||
|
||||
beforeEach(angular.mock.inject(function($injector, $componentController, $rootScope, $httpBackend, _state_, _OutputStrings_, _ParseVariableString_, _Prompt_, _ProcessErrors_, _Wait_, _OutputStatusService_){
|
||||
scope = $rootScope.$new();
|
||||
state = _state_;
|
||||
OutputStrings = _OutputStrings_;
|
||||
Prompt = _Prompt_;
|
||||
filter = $injector.get("$filter");
|
||||
ProcessErrors = _ProcessErrors_;
|
||||
Wait = _Wait_;
|
||||
ParseVariableString = _ParseVariableString_;
|
||||
httpBackend = $httpBackend;
|
||||
OutputStatusService = _OutputStatusService_;
|
||||
|
||||
JobDetails = $componentController('atJobDetails', {
|
||||
$scope: scope,
|
||||
$state: state,
|
||||
OutputStrings: OutputStrings,
|
||||
ProcessErrors: ProcessErrors,
|
||||
Wait: Wait,
|
||||
Prompt: Prompt,
|
||||
$filter: filter,
|
||||
Wait: Wait,
|
||||
ParseVariableString: ParseVariableString,
|
||||
httpBackend: httpBackend,
|
||||
OutputStatusService: OutputStatusService,
|
||||
}, {resource: resource});
|
||||
JobDetails.$onInit();
|
||||
}));
|
||||
|
||||
describe('JobDetails Component', () => {
|
||||
it('is created successfully', () => {
|
||||
expect(JobDetails).toBeDefined();
|
||||
});
|
||||
it('has method "getSplitJobDetails"', () => {
|
||||
expect(JobDetails.splitJobDetails).toBeDefined();
|
||||
});
|
||||
describe('splitJobDetails method', () => {
|
||||
it('returned values are strings', () => {
|
||||
const result = JobDetails.splitJobDetails;
|
||||
const { label, offset, tooltip } = result;
|
||||
expect(offset).toEqual('2/2');
|
||||
expect(label).toEqual('foo');
|
||||
expect(tooltip).toEqual('bar');
|
||||
});
|
||||
it('returns null if label, offset, or tooltip is undefined', () => {
|
||||
mockData = {
|
||||
summary_fields: {
|
||||
internal_limit: {
|
||||
shard: {
|
||||
offset: 1,
|
||||
step: 2,
|
||||
}
|
||||
}
|
||||
},
|
||||
labels: {
|
||||
SPLIT_JOB: null
|
||||
},
|
||||
tooltips: {
|
||||
SPLIT_JOB_DETAILS: null
|
||||
}
|
||||
};
|
||||
JobDetails.$onInit();
|
||||
const result = JobDetails.splitJobDetails;
|
||||
expect(result).toBeNull();
|
||||
});
|
||||
it('returns null if summary_fields.internal_limit is undefined or null', () => {
|
||||
mockData = {
|
||||
summary_fields: {
|
||||
internal_limit: undefined
|
||||
},
|
||||
labels: {
|
||||
SPLIT_JOB: 'foo'
|
||||
},
|
||||
tooltips: {
|
||||
SPLIT_JOB_DETAILS: 'bar'
|
||||
}
|
||||
};
|
||||
JobDetails.$onInit();
|
||||
const result = JobDetails.splitJobDetails;
|
||||
expect(result).toBeNull();
|
||||
});
|
||||
it('returns null if summary_fields.internal_limit.shard is undefined or null', () => {
|
||||
mockData = {
|
||||
summary_fields: {
|
||||
internal_limit: {
|
||||
shard: undefined
|
||||
}
|
||||
},
|
||||
labels: {
|
||||
SPLIT_JOB: 'foo'
|
||||
},
|
||||
tooltips: {
|
||||
SPLIT_JOB_DETAILS: 'bar'
|
||||
}
|
||||
};
|
||||
JobDetails.$onInit();
|
||||
const result = JobDetails.splitJobDetails;
|
||||
expect(result).toBeNull();
|
||||
});
|
||||
it('returns null if summary_fields.internal_limit.shard is an empty object', () => {
|
||||
mockData = {
|
||||
summary_fields: {
|
||||
internal_limit: {
|
||||
shard: {}
|
||||
}
|
||||
},
|
||||
labels: {
|
||||
SPLIT_JOB: 'foo'
|
||||
},
|
||||
tooltips: {
|
||||
SPLIT_JOB_DETAILS: 'bar'
|
||||
}
|
||||
};
|
||||
JobDetails.$onInit();
|
||||
const result = JobDetails.splitJobDetails;
|
||||
expect(result).toBeNull();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user