140 lines
6.5 KiB
JavaScript
140 lines
6.5 KiB
JavaScript
describe('PersonPreviewController', function () {
|
|
var $httpBackend;
|
|
|
|
beforeEach(module('myitsmApp'));
|
|
beforeEach(inject(function ($injector, $rootScope, $controller, personModel, $q, metadataModel, configurationModel, screenConfigurationModel, $filter) {
|
|
var deferred;
|
|
$httpBackend = $injector.get('$httpBackend');
|
|
this.$rootScope = $rootScope;
|
|
this.scope = $rootScope.$new();
|
|
this.controller = $controller;
|
|
this.personModel = personModel;
|
|
this.metadataModel = metadataModel;
|
|
this.$filter = $filter;
|
|
this.screenConfigurationModel = screenConfigurationModel;
|
|
this.$q = $q;
|
|
this.configurationModel = configurationModel;
|
|
|
|
deferred = $q.defer();
|
|
var getLocale = function () {
|
|
return readJSON('scripts/app/i18n/resources-locale_en.json');
|
|
};
|
|
var data = readJSON('mocks/user-sberequest-workitems.json');
|
|
|
|
$httpBackend.whenGET(/^scripts\/app\/i18n\/resources-locale_en.*$/).respond(getLocale());
|
|
$httpBackend.whenGET('/smartit/rest/serverstates').respond(200);
|
|
$httpBackend.whenGET('/smartit/rest/sessionstatus?getLicenseKey=true').respond(200);
|
|
$httpBackend.whenGET('views/dashboard/index.html').respond(200);
|
|
$httpBackend.whenGET('/smartit/rest/v2/metadata?type=global').respond(200);
|
|
$httpBackend.whenGET('/smartit/restapi/person/supportgroupperson').respond(200);
|
|
$httpBackend.when('POST', '/smartit/rest/person/workitems/get').respond(200);
|
|
$httpBackend.whenGET('/smartit/rest/v2/customization/application/search?name=Galileo&phase=2&screen=personDetailsScreen').respond(200);
|
|
this.scope.personId = 'Allen';
|
|
|
|
var that = this;
|
|
|
|
spyOn(this.configurationModel, 'isServerApplicationEnabled').and.returnValue(true);
|
|
|
|
spyOn(this.screenConfigurationModel, 'getScreenNameByTicketType').and.returnValue('person');
|
|
|
|
spyOn(this.personModel, 'getServiceSummaryStats').and.callFake(function () {
|
|
that.personModel.serviceSummaryRaw = [];
|
|
that.personModel.serviceSummary = {
|
|
ratingCount: 0,
|
|
ratingScore: 0,
|
|
escalation: 0,
|
|
ratingMarkers: []
|
|
};
|
|
deferred.resolve();
|
|
return deferred.promise;
|
|
});
|
|
|
|
spyOn(this.personModel, 'getPersonDetailsByID').and.callFake(function () {
|
|
that.personModel.personDetails = {
|
|
id: 'Allen',
|
|
loginId: 'Allen',
|
|
firstName: 'Allen',
|
|
supportGroups: []
|
|
};
|
|
deferred.resolve();
|
|
return deferred.promise;
|
|
});
|
|
|
|
spyOn(this.screenConfigurationModel, 'loadScreenConfigurationAndCustomFieldLabels').and.callFake(function () {
|
|
deferred.resolve();
|
|
return deferred.promise;
|
|
});
|
|
|
|
spyOn(this.personModel, 'getPersonAssets').and.callFake(function () {
|
|
that.personModel.personAssets = [];
|
|
deferred.resolve();
|
|
return deferred.promise;
|
|
});
|
|
spyOn(this.metadataModel, 'getMetadataByType').and.callFake(function () {
|
|
deferred.resolve();
|
|
return deferred.promise;
|
|
});
|
|
|
|
spyOn(this.personModel, 'getOpenTickets').and.callFake(function () {
|
|
that.personModel.personOpenTickets.ticketList = [];
|
|
that.personModel.personOpenTickets.totalMatches = 0;
|
|
deferred.resolve();
|
|
return deferred.promise;
|
|
});
|
|
|
|
spyOn(this.personModel, 'getClosedTickets').and.callFake(function () {
|
|
that.personModel.personClosedTickets.ticketList = [];
|
|
that.personModel.personClosedTickets.totalMatches = 0;
|
|
deferred.resolve();
|
|
return deferred.promise;
|
|
});
|
|
|
|
spyOn(this.personModel, 'getOpenServiceBrokerTickets').and.callFake(function () {
|
|
that.personModel.personOpenServiceBrokerTickets.ticketList = data[0].items[0].objects;
|
|
that.personModel.personOpenServiceBrokerTickets.totalMatches = data[0].items[0].totalMatches;
|
|
deferred.resolve();
|
|
return deferred.promise;
|
|
});
|
|
|
|
spyOn(this.personModel, 'getClosedServiceBrokerTickets').and.callFake(function () {
|
|
that.personModel.personClosedServiceBrokerTickets.ticketList = data[0].items[0].objects;
|
|
that.personModel.personClosedServiceBrokerTickets.totalMatches = data[0].items[0].totalMatches;
|
|
deferred.resolve();
|
|
return deferred.promise;
|
|
});
|
|
|
|
this.controllerInstance = this.controller('PersonPreviewController', {
|
|
$scope: this.scope
|
|
});
|
|
}));
|
|
|
|
it('should be defined and have open and closed service broker requets', function () {
|
|
this.scope.$apply();
|
|
expect(this.controllerInstance).toBeDefined();
|
|
expect(this.configurationModel.isServerApplicationEnabled).toHaveBeenCalled();
|
|
expect(this.scope.isServiceBrokerEnabled).toBe(true);
|
|
expect(this.personModel.getOpenServiceBrokerTickets).toHaveBeenCalled();
|
|
expect(this.scope.personOpenServiceBrokerTickets).toBeTruthy();
|
|
expect(this.scope.personOpenServiceBrokerTicketsTotalMatches).toBe(5);
|
|
expect(this.scope.personOpenServiceBrokerTickets[0].summary).toBe('Test Service 2.0');
|
|
expect(this.personModel.getClosedServiceBrokerTickets).toHaveBeenCalled();
|
|
expect(this.scope.personClosedServiceBrokerTickets).toBeTruthy();
|
|
expect(this.scope.personClosedServiceBrokerTicketsTotalMatches).toBe(5);
|
|
expect(this.scope.personClosedServiceBrokerTickets[0].summary).toBe('Test Service 2.0');
|
|
});
|
|
|
|
it('should get more open and closed service broker requets on load more', function () {
|
|
this.scope.getMoreOpenServiceBrokerTickets();
|
|
this.scope.getMoreClosedServiceBrokerTickets();
|
|
this.scope.$apply();
|
|
expect(this.personModel.getOpenServiceBrokerTickets).toHaveBeenCalledWith('Allen', 5);
|
|
expect(this.scope.personOpenServiceBrokerTickets).toBeTruthy();
|
|
expect(this.scope.personOpenServiceBrokerTicketsTotalMatches).toBe(5);
|
|
expect(this.scope.personOpenServiceBrokerTickets[0].summary).toBe('Test Service 2.0');
|
|
expect(this.personModel.getClosedServiceBrokerTickets).toHaveBeenCalledWith('Allen', 5);
|
|
expect(this.scope.personClosedServiceBrokerTickets).toBeTruthy();
|
|
expect(this.scope.personClosedServiceBrokerTicketsTotalMatches).toBe(5);
|
|
expect(this.scope.personClosedServiceBrokerTickets[0].summary).toBe('Test Service 2.0');
|
|
});
|
|
});
|