mirror of
https://github.com/ansible/awx.git
synced 2026-01-22 06:58:06 -03:30
165 lines
5.0 KiB
JavaScript
165 lines
5.0 KiB
JavaScript
'use strict';
|
|
|
|
describe('Controller: WorkflowAdd', () => {
|
|
// Setup
|
|
let scope,
|
|
state,
|
|
WorkflowAdd,
|
|
Alert,
|
|
GenerateForm,
|
|
TemplatesService,
|
|
q,
|
|
createWorkflowJobTemplateDeferred,
|
|
httpBackend,
|
|
ProcessErrors,
|
|
CreateSelect2,
|
|
Wait,
|
|
ParseTypeChange,
|
|
ToJSON,
|
|
availableLabels,
|
|
resolvedModels;
|
|
|
|
beforeEach(angular.mock.module('awApp'));
|
|
beforeEach(angular.mock.module('RestServices'));
|
|
beforeEach(angular.mock.module('templates', ($provide) => {
|
|
|
|
state = jasmine.createSpyObj('state', [
|
|
'$get',
|
|
'transitionTo',
|
|
'go'
|
|
]);
|
|
|
|
GenerateForm = jasmine.createSpyObj('GenerateForm', [
|
|
'inject',
|
|
'reset',
|
|
'clearApiErrors',
|
|
'applyDefaults'
|
|
]);
|
|
|
|
TemplatesService = {
|
|
getLabelOptions: function(){
|
|
return angular.noop;
|
|
},
|
|
createWorkflowJobTemplate: function(){
|
|
return angular.noop;
|
|
}
|
|
};
|
|
|
|
availableLabels = [{
|
|
name: "foo",
|
|
id: "1"
|
|
}];
|
|
|
|
resolvedModels = [
|
|
{},
|
|
{
|
|
options: () => {
|
|
return true;
|
|
}
|
|
}
|
|
];
|
|
|
|
Alert = jasmine.createSpy('Alert');
|
|
ProcessErrors = jasmine.createSpy('ProcessErrors');
|
|
CreateSelect2 = jasmine.createSpy('CreateSelect2');
|
|
Wait = jasmine.createSpy('Wait');
|
|
ParseTypeChange = jasmine.createSpy('ParseTypeChange');
|
|
ToJSON = jasmine.createSpy('ToJSON');
|
|
|
|
$provide.value('Alert', Alert);
|
|
$provide.value('GenerateForm', GenerateForm);
|
|
$provide.value('state', state);
|
|
$provide.value('ProcessErrors', ProcessErrors);
|
|
$provide.value('CreateSelect2', CreateSelect2);
|
|
$provide.value('Wait', Wait);
|
|
$provide.value('ParseTypeChange', ParseTypeChange);
|
|
$provide.value('ToJSON', ToJSON);
|
|
$provide.value('availableLabels', availableLabels);
|
|
$provide.value('resolvedModels', resolvedModels);
|
|
}));
|
|
|
|
beforeEach(angular.mock.inject( ($rootScope, $controller, $q, $httpBackend, _state_, _ConfigService_, _GetChoices_, _Alert_, _GenerateForm_, _ProcessErrors_, _CreateSelect2_, _Wait_, _ParseTypeChange_, _ToJSON_, _availableLabels_) => {
|
|
scope = $rootScope.$new();
|
|
state = _state_;
|
|
q = $q;
|
|
Alert = _Alert_;
|
|
GenerateForm = _GenerateForm_;
|
|
httpBackend = $httpBackend;
|
|
ProcessErrors = _ProcessErrors_;
|
|
CreateSelect2 = _CreateSelect2_;
|
|
Wait = _Wait_;
|
|
createWorkflowJobTemplateDeferred = q.defer();
|
|
ParseTypeChange = _ParseTypeChange_;
|
|
ToJSON = _ToJSON_;
|
|
availableLabels = _availableLabels_;
|
|
|
|
$httpBackend
|
|
.whenGET(/^\/api\/?$/)
|
|
.respond(200, '');
|
|
|
|
$httpBackend
|
|
.whenGET(/\/static\/*/)
|
|
.respond(200, {});
|
|
|
|
TemplatesService.createWorkflowJobTemplate = jasmine.createSpy('createWorkflowJobTemplate').and.returnValue(createWorkflowJobTemplateDeferred.promise);
|
|
|
|
WorkflowAdd = $controller('WorkflowAdd', {
|
|
$scope: scope,
|
|
$state: state,
|
|
Alert: Alert,
|
|
GenerateForm: GenerateForm,
|
|
TemplatesService: TemplatesService,
|
|
ProcessErrors: ProcessErrors,
|
|
CreateSelect2: CreateSelect2,
|
|
Wait: Wait,
|
|
ParseTypeChange: ParseTypeChange,
|
|
availableLabels: availableLabels,
|
|
ToJSON
|
|
});
|
|
}));
|
|
|
|
it('should get/set the label options and select2-ify the input', ()=>{
|
|
// We expect the digest cycle to fire off this call to /static/config.js so we go ahead and handle it
|
|
httpBackend.expectGET('/static/config.js').respond(200);
|
|
scope.$digest();
|
|
expect(scope.labelOptions).toEqual([{
|
|
label: "foo",
|
|
value: "1"
|
|
}]);
|
|
expect(CreateSelect2).toHaveBeenCalledWith({
|
|
element:'#workflow_job_template_labels',
|
|
multiple: true,
|
|
addNew: true
|
|
});
|
|
});
|
|
|
|
describe('scope.formSave()', () => {
|
|
|
|
it('should call TemplatesService.createWorkflowJobTemplate', ()=>{
|
|
scope.name = "Test Workflow";
|
|
scope.description = "This is a test description";
|
|
scope.formSave();
|
|
expect(TemplatesService.createWorkflowJobTemplate).toHaveBeenCalledWith({
|
|
name: "Test Workflow",
|
|
description: "This is a test description",
|
|
labels: undefined,
|
|
organization: undefined,
|
|
variables: undefined,
|
|
extra_vars: undefined,
|
|
allow_simultaneous: undefined
|
|
});
|
|
});
|
|
|
|
});
|
|
|
|
describe('scope.formCancel()', () => {
|
|
|
|
it('should transition to templates', ()=>{
|
|
scope.formCancel();
|
|
expect(state.transitionTo).toHaveBeenCalledWith('templates');
|
|
});
|
|
|
|
});
|
|
|
|
});
|