Add missing unit tests to NG launch instance

https://review.openstack.org/#/c/323623/ added a few new defaults to the
Launch Instance but didn't add any tests, so the backport is blocked on
coverage. Rather than lower coverage, we should just add the tests and
squash the two commits in the backport.

Fastest way to verify is to generate coverage in master, look at the
lines added by https://review.openstack.org/#/c/323623/ (red) then apply
this patch and run again. You'll see they are all white.

Change-Id: I07d2f5ebcb1771a548c0066699194ea619e7461c
Related-Bug: #1587681
This commit is contained in:
Rob Cresswell 2016-06-03 10:32:07 +01:00
parent fda6c283a9
commit b3b88310e1
1 changed files with 84 additions and 40 deletions

View File

@ -71,6 +71,47 @@
}
};
var securityGroupApi = {
query: function() {
var secGroups = [
{ name: 'security-group-1' },
{ name: 'security-group-2' }
];
var deferred = $q.defer();
deferred.resolve({ data: { items: secGroups } });
return deferred.promise;
}
};
var neutronApi = {
getNetworks: function() {
var networks = [ { id: 'net-1' }, { id: 'net-2' } ];
var deferred = $q.defer();
deferred.resolve({ data: { items: networks } });
return deferred.promise;
},
getPorts: function(network) {
var ports = {
'net-1': [
{ name: 'port-1', device_owner: '', fixed_ips: [], admin_state: 'UP' },
{ name: 'port-2', device_owner: '', fixed_ips: [], admin_state: 'DOWN' }
],
'net-2': [
{ name: 'port-3', device_owner: 'owner', fixed_ips: [], admin_state: 'DOWN' },
{ name: 'port-4', device_owner: '', fixed_ips: [], admin_state: 'DOWN' }
]
};
var deferred = $q.defer();
deferred.resolve({ data: { items: ports[network.network_id] } });
return deferred.promise;
}
};
beforeEach(module('horizon.dashboard.project.workflow.launch-instance'));
beforeEach(module(function($provide) {
@ -110,47 +151,9 @@
$provide.value('horizon.app.core.openstack-service-api.nova', novaApi);
$provide.value('horizon.app.core.openstack-service-api.security-group', {
query: function() {
var secGroups = [
{ name: 'security-group-1' },
{ name: 'security-group-2' }
];
$provide.value('horizon.app.core.openstack-service-api.security-group', securityGroupApi);
var deferred = $q.defer();
deferred.resolve({ data: { items: secGroups } });
return deferred.promise;
}
});
$provide.value('horizon.app.core.openstack-service-api.neutron', {
getNetworks: function() {
var networks = [ { id: 'net-1' }, { id: 'net-2' } ];
var deferred = $q.defer();
deferred.resolve({ data: { items: networks } });
return deferred.promise;
},
getPorts: function(network) {
var ports = {
'net-1': [
{ name: 'port-1', device_owner: '', fixed_ips: [], admin_state: 'UP' },
{ name: 'port-2', device_owner: '', fixed_ips: [], admin_state: 'DOWN' }
],
'net-2': [
{ name: 'port-3', device_owner: 'owner', fixed_ips: [], admin_state: 'DOWN' },
{ name: 'port-4', device_owner: '', fixed_ips: [], admin_state: 'DOWN' }
]
};
var deferred = $q.defer();
deferred.resolve({ data: { items: ports[network.network_id] } });
return deferred.promise;
}
});
$provide.value('horizon.app.core.openstack-service-api.neutron', neutronApi);
$provide.value('horizon.app.core.openstack-service-api.cinder', {
getVolumes: function() {
@ -438,6 +441,47 @@
scope.$apply();
expect(glance.getNamespaces.calls.count()).toBe(4);
});
it('should set a keypair by default if only one keypair is available', function () {
var keypair = { keypair: { name: 'key-1' } };
spyOn(novaApi, 'getKeypairs').and.callFake(function () {
var deferred = $q.defer();
deferred.resolve({ data: { items: [ keypair ] } });
return deferred.promise;
});
model.initialize(true);
scope.$apply();
expect(model.newInstanceSpec.key_pair.length).toBe(1);
expect(model.newInstanceSpec.key_pair).toEqual( [ keypair.keypair ] );
});
it('should set a security group by default if one named "default" is available',
function () {
var secGroups = [ { name: 'default' } ];
spyOn(securityGroupApi, 'query').and.callFake(function () {
var deferred = $q.defer();
deferred.resolve({ data: { items: secGroups } });
return deferred.promise;
});
model.initialize(true);
scope.$apply();
expect(model.newInstanceSpec.security_groups.length).toBe(1);
expect(model.newInstanceSpec.security_groups).toEqual(secGroups);
}
);
it('should set a network by default if only one network is available', function () {
var networks = [ { id: 'net-1' } ];
spyOn(neutronApi, 'getNetworks').and.callFake(function () {
var deferred = $q.defer();
deferred.resolve({ data: { items: networks } });
return deferred.promise;
});
model.initialize(true);
scope.$apply();
expect(model.newInstanceSpec.networks.length).toBe(1);
expect(model.newInstanceSpec.networks).toEqual(networks);
});
});
describe('Post Initialization Model - Initializing', function() {