horizon/openstack_dashboard/static/app/core/images/images.module.spec.js

74 lines
2.6 KiB
JavaScript

/**
* (c) Copyright 2016 Hewlett-Packard Development Company, L.P.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
(function () {
'use strict';
describe('horizon.app.core.images', function () {
it('should exist', function () {
expect(angular.module('horizon.app.core.images')).toBeDefined();
});
});
describe('loading the module', function () {
var registry;
beforeEach(module('horizon.app.core.images'));
beforeEach(inject(function($injector) {
registry = $injector.get('horizon.framework.conf.resource-type-registry.service');
}));
it('registers names', function() {
// I don't really like testing this at this level, as in a way it's more
// testing the registry features. It's more complicated to mock the entire
// registry in the way you'd basically have to in order to spy on the
// setNames call. It's my opinion that we shouldn't be testing for these
// configurations as part of a module unit test, but I don't have a good
// answer as to how one properly tests that their plugin-based system is
// configured the way they expect it to be.
expect(registry.getResourceType('OS::Glance::Image').getName()).toBe("Images");
});
it('should set facets for search', function () {
var names = registry.getResourceType('OS::Glance::Image').filterFacets
.map(getName);
expect(names).toContain('name');
expect(names).toContain('status');
expect(names).toContain('protected');
expect(names).toContain('disk_format');
expect(names).toContain('size_min');
expect(names).toContain('size_max');
function getName(x) {
// underscore.js and .pluck() would be great here.
return x.name;
}
});
});
describe('horizon.app.core.images.imageFormats constant', function() {
var imageFormats;
beforeEach(module('horizon.app.core.images'));
beforeEach(inject(function ($injector) {
imageFormats = $injector.get('horizon.app.core.images.imageFormats');
}));
it('should be defined', function() {
expect(Object.keys(imageFormats).length).toEqual(12);
});
});
})();