2
0
mirror of https://github.com/VinylDNS/vinyldns synced 2025-08-23 10:37:08 +00:00
vinyldns/modules/portal/public/lib/controllers/controller.zones.spec.js
2023-07-25 19:48:57 +05:30

191 lines
8.6 KiB
JavaScript

/*
* Copyright 2018 Comcast Cable Communications Management, LLC
*
* 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.
*/
describe('Controller: ZonesController', function () {
beforeEach(function () {
module('ngMock'),
module('service.groups'),
module('service.profile'),
module('service.records'),
module('service.zones'),
module('service.utility'),
module('service.paging'),
module('controller.zones')
});
beforeEach(inject(function ($rootScope, $controller, $q, groupsService, profileService, recordsService, zonesService, utilityService, pagingService) {
this.scope = $rootScope.$new();
this.groupsService = groupsService;
this.zonesService = zonesService;
this.zonesService.q = $q;
this.pagingService = pagingService;
this.scope.myGroups = {};
this.scope.allGroups = {};
this.scope.zones = {};
profileService.getAuthenticatedUserData = function() {
return $q.when({data: {id: "userId"}});
};
groupsService.getGroups = function () {
return $q.when({
data: {
groups: [{id: "all my groups", members: [{id: "userId"}]}]
}
});
};
zonesService.getZones = function() {
return $q.when({
data: {
zones: ["all my zones"]
}
});
};
zonesService.getBackendIds = function() {
return $q.when({
data: ['backend-1', 'backend-2']
});
};
this.controller = $controller('ZonesController', {'$scope': this.scope});
}));
it('test that we properly get users groups when loading ZonesController', function(){
var validDomains = spyOn(this.scope, 'validDomains')
.and.stub();
this.scope.$digest();
expect(this.scope.myGroups).toEqual([{id: "all my groups", members: [{id: "userId"}]}]);
});
it('nextPageMyZones should call getZones with the correct parameters', function () {
var getZoneSets = spyOn(this.zonesService, 'getZones')
.and.stub()
.and.returnValue(this.zonesService.q.when(mockZone));
var expectedMaxItems = 100;
var expectedStartFrom = undefined;
var expectedQuery = this.scope.query;
var expectedSearchByAdminGroup = this.scope.searchByAdminGroup;
var expectedignoreAccess = false;
var expectedincludeReverse = true;
this.scope.nextPageMyZones();
expect(getZoneSets.calls.count()).toBe(1);
expect(getZoneSets.calls.mostRecent().args).toEqual(
[expectedMaxItems, expectedStartFrom, expectedQuery, expectedSearchByAdminGroup, expectedignoreAccess, expectedincludeReverse]);
});
it('prevPageMyZones should call getZones with the correct parameters', function () {
var getZoneSets = spyOn(this.zonesService, 'getZones')
.and.stub()
.and.returnValue(this.zonesService.q.when(mockZone));
var expectedMaxItems = 100;
var expectedStartFrom = undefined;
var expectedQuery = this.scope.query;
var expectedSearchByAdminGroup = this.scope.searchByAdminGroup;
var expectedignoreAccess = false;
var expectedincludeReverse = true;
this.scope.prevPageMyZones();
expect(getZoneSets.calls.count()).toBe(1);
expect(getZoneSets.calls.mostRecent().args).toEqual(
[expectedMaxItems, expectedStartFrom, expectedQuery, expectedSearchByAdminGroup, expectedignoreAccess, expectedincludeReverse]);
this.scope.nextPageMyZones();
this.scope.prevPageMyZones();
expect(getZoneSets.calls.count()).toBe(3);
expect(getZoneSets.calls.mostRecent().args).toEqual(
[expectedMaxItems, expectedStartFrom, expectedQuery, expectedSearchByAdminGroup, expectedignoreAccess, expectedincludeReverse]);
});
it('nextPageZones should call getDeletedZones with the correct parameters', function () {
mockDeletedZone = {zonesDeletedInfo:[ {
zoneChanges: [{ zone: {
name: "dummy.",
email: "test@test.com",
status: "Deleted",
created: "2017-02-15T14:58:39Z",
account: "c8234503-bfda-4b80-897f-d74129051eaa",
acl: {rules: []},
adminGroupId: "c8234503-bfda-4b80-897f-d74129051eaa",
id: "c5c87405-2ec8-4e03-b2dc-c6758a5d9666",
shared: false,
status: "Active",
latestSync: "2017-02-15T14:58:39Z",
isTest: true
}}],maxItems: 100}]};
var getDeletedZoneSets = spyOn(this.zonesService, 'getDeletedZones')
.and.stub()
.and.returnValue(this.zonesService.q.when(mockDeletedZone));
var expectedMaxItems = 100;
var expectedStartFrom = undefined;
var expectedQuery = this.scope.query;
var expectedIgnoreAccess = false;
this.scope.nextPageMyDeletedZones();
expect(getDeletedZoneSets.calls.count()).toBe(1);
expect(getDeletedZoneSets.calls.mostRecent().args).toEqual(
[expectedMaxItems, expectedStartFrom, expectedQuery, expectedIgnoreAccess]);
});
it('prevPageZones should call getDeletedZones with the correct parameters', function () {
mockDeletedZone = {zonesDeletedInfo:[ {
zoneChanges: [{ zone: {
name: "dummy.",
email: "test@test.com",
status: "Deleted",
created: "2017-02-15T14:58:39Z",
account: "c8234503-bfda-4b80-897f-d74129051eaa",
acl: {rules: []},
adminGroupId: "c8234503-bfda-4b80-897f-d74129051eaa",
id: "c5c87405-2ec8-4e03-b2dc-c6758a5d9666",
shared: false,
status: "Active",
latestSync: "2017-02-15T14:58:39Z",
isTest: true
}}],maxItems: 100}]};
var getDeletedZoneSets = spyOn(this.zonesService, 'getDeletedZones')
.and.stub()
.and.returnValue(this.zonesService.q.when(mockDeletedZone));
var expectedMaxItems = 100;
var expectedStartFrom = undefined;
var expectedQuery = this.scope.query;
var expectedIgnoreAccess = false;
this.scope.prevPageMyDeletedZones();
expect(getDeletedZoneSets.calls.count()).toBe(1);
expect(getDeletedZoneSets.calls.mostRecent().args).toEqual(
[expectedMaxItems, expectedStartFrom, expectedQuery, expectedIgnoreAccess]);
this.scope.nextPageMyDeletedZones();
this.scope.prevPageMyDeletedZones();
expect(getDeletedZoneSets.calls.count()).toBe(3);
expect(getDeletedZoneSets.calls.mostRecent().args).toEqual(
[expectedMaxItems, expectedStartFrom, expectedQuery, expectedIgnoreAccess]);
});
});