horizon/openstack_dashboard/dashboards/identity/static/dashboard/identity/roles/roles.module.spec.js

84 lines
2.7 KiB
JavaScript

/**
* Copyright 2016 99Cloud
*
* 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.dashboard.identity.roles', function () {
it('should exist', function () {
expect(angular.module('horizon.dashboard.identity.roles')).toBeDefined();
});
});
describe('horizon.dashboard.identity.roles.basePath constant', function() {
var q, rolesBasePath, staticUrl, registry, service, timeout;
beforeEach(module('horizon.app.core.openstack-service-api'));
beforeEach(module('horizon.dashboard.identity'));
beforeEach(module('horizon.framework'));
beforeEach(inject(function($q, $injector, $timeout) {
q = $q;
timeout = $timeout;
rolesBasePath = $injector.get('horizon.dashboard.identity.roles.basePath');
staticUrl = $injector.get('$window').STATIC_URL;
registry = $injector.get('horizon.framework.conf.resource-type-registry.service');
service = $injector.get('horizon.app.core.openstack-service-api.keystone');
}));
it('should equal to "/static/dashboard/identity/roles"', function() {
expect(rolesBasePath).toEqual(staticUrl + 'dashboard/identity/roles/');
});
it('trackBy should change when role name changes', function() {
var defer1 = q.defer();
var defer2 = q.defer();
spyOn(service, 'getRoles').and.returnValues(
defer1.promise,
defer2.promise
);
defer1.resolve(
{data:
{items:
[{id: 'role-id',
name: 'role-name-1',
domain_id: null
}]}});
defer2.resolve(
{data:
{items:
[{id: 'role-id',
name: 'role-name-2',
domain_id: null
}]}});
var resource = registry.getResourceType('OS::Keystone::Role');
q.all([
resource.list(),
resource.list()
]).then(function(responses) {
var trackBy1 = responses[0].data.items[0].trackBy;
var trackBy2 = responses[1].data.items[0].trackBy;
expect(trackBy1).toBeDefined();
expect(trackBy2).toBeDefined();
expect(trackBy1).not.toEqual(trackBy2);
});
timeout.flush();
});
});
})();