108 lines
5.2 KiB
JavaScript
108 lines
5.2 KiB
JavaScript
describe('ConsoleController', function () {
|
|
beforeEach(module('myitsmApp'));
|
|
|
|
var $controller, $rootScope, ticketConsoleModel, $scope, controller, $httpBackend;
|
|
|
|
beforeEach(inject(function ($injector, _$controller_, _$rootScope_, _ticketConsoleModel_, _$httpBackend_) {
|
|
// The injector unwraps the underscores (_) from around the parameter names when matching
|
|
$controller = _$controller_;
|
|
$rootScope = _$rootScope_;
|
|
ticketConsoleModel = _ticketConsoleModel_;
|
|
$httpBackend = _$httpBackend_;
|
|
|
|
$scope = $rootScope.$new();
|
|
|
|
$scope.consoleType = 'ticket';
|
|
$scope.displayMetric = true;
|
|
$scope.displayFilter = true;
|
|
|
|
controller = $controller('ConsoleController', { $scope: $scope });
|
|
|
|
var getLocale = function () {
|
|
return readJSON('scripts/app/i18n/resources-locale_en.json');
|
|
};
|
|
|
|
$httpBackend.whenGET(/^scripts\/app\/i18n\/resources-locale_en.*$/).respond(200, getLocale());
|
|
$httpBackend.whenGET('/smartit/rest/serverstates').respond(200, 1);
|
|
$httpBackend.whenGET('/smartit/rest/sessionstatus?getLicenseKey=true').respond(200, {"isCKEditorSourceEditable":false,"attachmentSecurityConfiguration":{"ruleType":"allowAll","fileExtensions":[]},"accessObjects":[{"id":"galileo-admin-access","permission":"write"},{"id":"galileo-normal-access","permission":"write"},{"id":"galileo-change-access","permission":"write"},{"id":"galileo-release-access","permission":"write"},{"id":"galileo-knowledge-access","permission":"write"},{"id":"galileo-problem-access","permission":"write"},{"id":"galileo-asset-access","permission":"write"},{"id":"galileo-people-access","permission":"write"}],"session":1,"smartitsp":{"smartItCsp":"connect-src http://clm-pun-003257.bmc.com:7070/ 'self';script-src 'self' 'unsafe-eval' 'unsafe-inline' http://cdn.ckeditor.com http://loader.webspellchecker.net http://s1.webspellchecker.net https://www.webspellchecker.net maps.google.com maps.googleapis.com;object-src 'self';"},"enabledApplications":["knowledge","slm","request","workorder","incident","asset","task","change","release","activity","problem","knownerror"]});
|
|
$httpBackend.whenGET('views/dashboard/index.html').respond(200);
|
|
$httpBackend.whenGET('/smartit/rest/v2/metadata?type=global').respond(200, readJSON('mocks/metadata-global.json'));
|
|
}));
|
|
|
|
describe('Controller initialized correctly', function () {
|
|
|
|
it('Controller should be defined, and all initial values properly set', function () {
|
|
expect(controller).toBeDefined();
|
|
expect($scope.state.bootstraping).toBeTruthy();
|
|
expect($scope.state.processing).toBeFalsy();
|
|
expect($scope.state.loadingMoreTickets).toBeFalsy();
|
|
expect($scope.state.updatingMetric).toBeFalsy();
|
|
expect($scope.selectedItems).toBeDefined();
|
|
expect($scope.selectedItems.length).toBe(0);
|
|
expect($scope.sortInfo).toBeDefined();
|
|
expect($scope.openEntityDetailPage).toBeDefined();
|
|
expect($scope.ribbonConfig).toBe(ticketConsoleModel.ribbonConfig);
|
|
expect($scope.criteria).toBe(ticketConsoleModel.criteria);
|
|
expect($scope.selectedFilters).toBe(ticketConsoleModel.selectedFilters);
|
|
});
|
|
});
|
|
|
|
describe('Controller initialization should happen correctly', function () {
|
|
beforeEach(function () {
|
|
|
|
$httpBackend
|
|
.whenGET('/smartit/rest/v2/metadata?type=incident&type=workorder&type=task&type=request&type=change&type=problem&type=knownerror&type=release')
|
|
.respond(200, readJSON('mocks/metadata-tickets.json'));
|
|
|
|
$httpBackend
|
|
.whenGET('/smartit/rest/v2/foundation/consolecolumn/available/search')
|
|
.respond(200, readJSON('mocks/tc-available-columns.json'));
|
|
|
|
$httpBackend
|
|
.whenGET('/smartit/rest/v2/preference/details/search?clientType=UC&preferenceGroup=TicketConsoleColumns')
|
|
.respond(200, readJSON('mocks/tc-user-preferences-columns.json'));
|
|
|
|
$httpBackend
|
|
.whenGET('/smartit/rest/v2/preference/details/search?clientType=UC&preferenceGroup=TicketConsoleFilter')
|
|
.respond(200, [])
|
|
});
|
|
|
|
it('Calling "init()" function should work correctly', function () {
|
|
ticketConsoleModel.populateMetadataAndColumns();
|
|
$httpBackend.flush();
|
|
ticketConsoleModel.populateConfiguration();
|
|
$httpBackend.flush();
|
|
|
|
$scope.init();
|
|
|
|
expect($scope.columnsConfig).toBe(ticketConsoleModel.columnsConfig);
|
|
expect($scope.userSavedFilterPresets).toBeDefined();
|
|
expect($scope.userSavedFilterPresets.length).toBe(2);
|
|
expect($scope.ticketMetric).toBe(ticketConsoleModel.statsConfig);
|
|
expect($scope.filterConfig).toBe(ticketConsoleModel.filterConfig);
|
|
expect($scope.ticketTypeFilter).toBe(ticketConsoleModel.ticketTypeFilter);
|
|
expect($scope.showStats).toBe(ticketConsoleModel.showStats);
|
|
|
|
});
|
|
|
|
it(' Checking getMetrics function behaviour based on the flag - getMetrics', function () {
|
|
|
|
spyOn(ticketConsoleModel, 'getTicketConsoleMetric').and.callThrough();
|
|
|
|
ticketConsoleModel.populateMetadataAndColumns();
|
|
$httpBackend.flush();
|
|
ticketConsoleModel.populateConfiguration();
|
|
$httpBackend.flush();
|
|
|
|
ticketConsoleModel.showStats = false;
|
|
$scope.getMetrics();
|
|
expect(ticketConsoleModel.getTicketConsoleMetric).not.toHaveBeenCalled();
|
|
|
|
ticketConsoleModel.showStats = true;
|
|
$scope.getMetrics();
|
|
expect(ticketConsoleModel.getTicketConsoleMetric).toHaveBeenCalled();
|
|
|
|
});
|
|
|
|
})
|
|
}); |