From 571e34bf791da8935ce71c7765f2faa64f47e044 Mon Sep 17 00:00:00 2001 From: kialam Date: Mon, 8 Oct 2018 14:56:30 -0400 Subject: [PATCH] Begin adding unit tests for split jobs - Test split job tag method within Jobs List Controller. --- awx/ui/client/features/jobs/index.js | 2 + .../client/features/jobs/routes/jobs.route.js | 3 +- awx/ui/test/unit/components/index.js | 1 + .../test/unit/components/split-jobs.unit.js | 95 +++++++++++++++++++ 4 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 awx/ui/test/unit/components/split-jobs.unit.js diff --git a/awx/ui/client/features/jobs/index.js b/awx/ui/client/features/jobs/index.js index 8bb692f0c8..99d91515d5 100644 --- a/awx/ui/client/features/jobs/index.js +++ b/awx/ui/client/features/jobs/index.js @@ -1,12 +1,14 @@ import JobsStrings from './jobs.strings'; import jobsRoute from './routes/jobs.route'; import { jobsSchedulesRoute, jobsSchedulesEditRoute } from '../../src/scheduler/schedules.route'; +import jobsListController from './jobsList.controller'; const MODULE_NAME = 'at.features.jobs'; angular .module(MODULE_NAME, []) .service('JobsStrings', JobsStrings) + .controller('jobsListController', jobsListController) .run(['$stateExtender', ($stateExtender) => { $stateExtender.addState(jobsRoute); $stateExtender.addState(jobsSchedulesRoute); diff --git a/awx/ui/client/features/jobs/routes/jobs.route.js b/awx/ui/client/features/jobs/routes/jobs.route.js index 52e6456bd7..427d7d165d 100644 --- a/awx/ui/client/features/jobs/routes/jobs.route.js +++ b/awx/ui/client/features/jobs/routes/jobs.route.js @@ -1,5 +1,4 @@ import { N_ } from '../../../src/i18n'; -import jobsListController from '../jobsList.controller'; import indexController from '../index.controller'; const indexTemplate = require('~features/jobs/index.view.html'); @@ -69,7 +68,7 @@ export default { }, 'jobsList@jobs': { templateUrl: jobsListTemplate, - controller: jobsListController, + controller: 'jobsListController', controllerAs: 'vm' } } diff --git a/awx/ui/test/unit/components/index.js b/awx/ui/test/unit/components/index.js index 8d75e3cf71..384436db40 100644 --- a/awx/ui/test/unit/components/index.js +++ b/awx/ui/test/unit/components/index.js @@ -6,4 +6,5 @@ import './file.unit'; import './layout.unit'; import './side-nav.unit'; import './side-nav-item.unit'; +import './split-jobs.unit'; diff --git a/awx/ui/test/unit/components/split-jobs.unit.js b/awx/ui/test/unit/components/split-jobs.unit.js new file mode 100644 index 0000000000..246471b6db --- /dev/null +++ b/awx/ui/test/unit/components/split-jobs.unit.js @@ -0,0 +1,95 @@ +describe('View: Split Jobs List', () => { + let JobList, + scope, + state, + Dataset, + resolvedModels, + JobsStrings, + QuerySet, + Prompt, + filter, + ProcessErrors, + Wait, + Rest, + SearchBasePath; + + beforeEach(angular.mock.module('at.features.jobs', ($provide) => { + Dataset = { + data: { + results: {} + } + } + state = { + params: { + job_search: {} + }, + go: jasmine.createSpy('go'), + includes: jasmine.createSpy('includes') + } + resolvedModels = [ + { + options: () => { + return ["foo", "bar"]; + } + } + ] + + ProcessErrors = jasmine.createSpy('ProcessErrors'); + Wait = jasmine.createSpy('Wait'); + Prompt = jasmine.createSpy('Prompt'); + + $provide.value('state', state); + $provide.value('Dataset', Dataset); + $provide.value('resolvedModels', resolvedModels); + $provide.value('ProcessErrors', ProcessErrors); + $provide.value('Wait', Wait); + $provide.value('Prompt', Prompt); + $provide.value('Rest', angular.noop); + $provide.value('SearchBasePath', ''); + $provide.value('JobsStrings', angular.noop); + $provide.value('QuerySet', angular.noop); + + $provide.provider('$stateProvider', { '$get': function() { return function() {}; } }); + $provide.value('$stateExtender', { addState: jasmine.createSpy('addState'), }); + })); + + beforeEach(angular.mock.inject(function($controller, $rootScope, _state_, _Dataset_, _resolvedModels_, _JobsStrings_, _QuerySet_, _Prompt_, _$filter_, _ProcessErrors_, _Wait_, _Rest_, _SearchBasePath_){ + scope = $rootScope.$new(); + state = _state_; + Dataset = _Dataset_; + resolvedModels = _resolvedModels_; + JobsStrings = _JobsStrings_; + QuerySet = _QuerySet_; + Prompt = _Prompt_; + filter = _$filter_; + ProcessErrors = _ProcessErrors_; + Wait = _Wait_; + Rest = _Rest_; + SearchBasePath = _SearchBasePath_; + + JobList = $controller('jobsListController', { + $scope: scope, + $state: state, + Dataset: Dataset, + resolvedModels: resolvedModels, + JobsStrings: JobsStrings, + ProcessErrors: ProcessErrors, + QuerySet: QuerySet, + Wait: Wait, + Prompt: Prompt, + $filter: filter, + Wait: Wait, + Rest: Rest, + SearchBasePath: SearchBasePath, + }); + })); + + describe('JobList Controller', () => { + it('is created successfully', () => { + expect(JobList).toBeDefined(); + }); + it('has method "getSplitJobDetails"', () => { + expect(JobList.getSplitJobDetails).toBeDefined(); + }); + }); +}); \ No newline at end of file