adds tests for SearchController

This commit is contained in:
SWatro 2013-12-02 16:47:39 -06:00
parent a80e7225ae
commit bbc11d2e6f
2 changed files with 194 additions and 70 deletions

View File

@ -1,91 +1,93 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Jasmine Spec Runner</title>
<meta charset="utf-8">
<title>Jasmine Spec Runner</title>
<meta charset="utf-8">
<link rel="shortcut icon" type="image/png" href="../app/bower_components/jasmine/images/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="../app/bower_components/jasmine/lib/jasmine-core/jasmine.css">
<script type="text/javascript" src="../app/bower_components/jasmine/lib/jasmine-core/jasmine.js"></script>
<script type="text/javascript" src="../app/bower_components/jasmine/lib/jasmine-core/jasmine-html.js"></script>
<link rel="shortcut icon" type="image/png" href="../app/bower_components/jasmine/images/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="../app/bower_components/jasmine/lib/jasmine-core/jasmine.css">
<script type="text/javascript" src="../app/bower_components/jasmine/lib/jasmine-core/jasmine.js"></script>
<script type="text/javascript" src="../app/bower_components/jasmine/lib/jasmine-core/jasmine-html.js"></script>
<script type="text/javascript" src="../app/bower_components/underscore/underscore-min.js"></script>
<script type="text/javascript" src="../app/bower_components/angular/angular.min.js"></script>
<script type="text/javascript" src="../app/bower_components/underscore/underscore-min.js"></script>
<script type="text/javascript" src="../app/bower_components/angular/angular.min.js"></script>
<!-- include source files here... -->
<script type="text/javascript" src="../app/scripts/mifosX.js"></script>
<script type="text/javascript" src="../app/scripts/models/roleMap.js"></script>
<script type="text/javascript" src="../app/scripts/models/LoggedInUser.js"></script>
<script type="text/javascript" src="../app/scripts/models/Role.js"></script>
<script type="text/javascript" src="../app/scripts/models/Langs.js"></script>
<script type="text/javascript" src="../app/scripts/services/AuthenticationService.js"></script>
<script type="text/javascript" src="../app/scripts/services/SessionManager.js"></script>
<script type="text/javascript" src="../app/scripts/services/HttpServiceProvider.js"></script>
<script type="text/javascript" src="../app/scripts/services/ResourceFactoryProvider.js"></script>
<script type="text/javascript" src="../app/scripts/directives/DataTablesDirective.js"></script>
<script type="text/javascript" src="../app/scripts/directives/OverlayDirective.js"></script>
<script type="text/javascript" src="../app/scripts/directives/DialogDirective.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/main/MainController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/main/LoginFormController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/organization/RoleController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/user/UserController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/user/UserFormController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/user/UserListController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/client/ClientController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/user/UserSettingController.js"></script>
<!-- include source files here... -->
<script type="text/javascript" src="../app/scripts/mifosX.js"></script>
<script type="text/javascript" src="../app/scripts/models/roleMap.js"></script>
<script type="text/javascript" src="../app/scripts/models/LoggedInUser.js"></script>
<script type="text/javascript" src="../app/scripts/models/Role.js"></script>
<script type="text/javascript" src="../app/scripts/models/Langs.js"></script>
<script type="text/javascript" src="../app/scripts/services/AuthenticationService.js"></script>
<script type="text/javascript" src="../app/scripts/services/SessionManager.js"></script>
<script type="text/javascript" src="../app/scripts/services/HttpServiceProvider.js"></script>
<script type="text/javascript" src="../app/scripts/services/ResourceFactoryProvider.js"></script>
<script type="text/javascript" src="../app/scripts/directives/DataTablesDirective.js"></script>
<script type="text/javascript" src="../app/scripts/directives/OverlayDirective.js"></script>
<script type="text/javascript" src="../app/scripts/directives/DialogDirective.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/main/MainController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/main/LoginFormController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/organization/RoleController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/user/UserController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/user/UserFormController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/user/UserListController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/client/ClientController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/user/UserSettingController.js"></script>
<script type="text/javascript" src="../app/scripts/controllers/main/SearchController.js"></script>
<!-- include spec files here... -->
<script type="text/javascript" src="spec/specHelper.js"></script>
<script type="text/javascript" src="spec/models/LoggedInUserSpec.js"></script>
<script type="text/javascript" src="spec/models/RoleSpec.js"></script>
<script type="text/javascript" src="spec/services/AuthenticationServiceSpec.js"></script>
<script type="text/javascript" src="spec/services/SessionManagerSpec.js"></script>
<script type="text/javascript" src="spec/services/HttpServiceProviderSpec.js"></script>
<script type="text/javascript" src="spec/services/ResourceFactoryProviderSpec.js"></script>
<script type="text/javascript" src="spec/directives/DataTablesDirectiveSpec.js"></script>
<script type="text/javascript" src="spec/directives/OverlayDirectiveSpec.js"></script>
<script type="text/javascript" src="spec/directives/DialogDirectiveSpec.js"></script>
<script type="text/javascript" src="spec/controllers/MainControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/LoginFormControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/RoleControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/UserControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/UserFormControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/UserListControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/ClientControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/UserSettingControllerSpec.js"></script>
<!-- include spec files here... -->
<script type="text/javascript" src="spec/specHelper.js"></script>
<script type="text/javascript" src="spec/models/LoggedInUserSpec.js"></script>
<script type="text/javascript" src="spec/models/RoleSpec.js"></script>
<script type="text/javascript" src="spec/services/AuthenticationServiceSpec.js"></script>
<script type="text/javascript" src="spec/services/SessionManagerSpec.js"></script>
<script type="text/javascript" src="spec/services/HttpServiceProviderSpec.js"></script>
<script type="text/javascript" src="spec/services/ResourceFactoryProviderSpec.js"></script>
<script type="text/javascript" src="spec/directives/DataTablesDirectiveSpec.js"></script>
<script type="text/javascript" src="spec/directives/OverlayDirectiveSpec.js"></script>
<script type="text/javascript" src="spec/directives/DialogDirectiveSpec.js"></script>
<script type="text/javascript" src="spec/controllers/MainControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/LoginFormControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/RoleControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/UserControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/UserFormControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/UserListControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/ClientControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/UserSettingControllerSpec.js"></script>
<script type="text/javascript" src="spec/controllers/SearchControllerSpec.js"></script>
<script type="text/javascript">
(function() {
var jasmineEnv = jasmine.getEnv();
jasmineEnv.updateInterval = 1000;
<script type="text/javascript">
(function() {
var jasmineEnv = jasmine.getEnv();
jasmineEnv.updateInterval = 1000;
var htmlReporter = new jasmine.HtmlReporter();
var htmlReporter = new jasmine.HtmlReporter();
jasmineEnv.addReporter(htmlReporter);
jasmineEnv.addReporter(htmlReporter);
jasmineEnv.specFilter = function(spec) {
return htmlReporter.specFilter(spec);
};
jasmineEnv.specFilter = function(spec) {
return htmlReporter.specFilter(spec);
};
var currentWindowOnload = window.onload;
var currentWindowOnload = window.onload;
window.onload = function() {
if (currentWindowOnload) {
currentWindowOnload();
}
execJasmine();
};
window.onload = function() {
if (currentWindowOnload) {
currentWindowOnload();
}
execJasmine();
};
function execJasmine() {
jasmineEnv.execute();
}
function execJasmine() {
jasmineEnv.execute();
}
})();
</script>
})();
</script>
</head>

View File

@ -0,0 +1,122 @@
describe("SearchController", function() {
var resourceCallback, clientGet, clientAccountGet, groupGet, groupAccountGet,centerGet, centerAccountGet;
beforeEach(function() {
this.scope = {};
this.route =jasmine.createSpyObj("$routeParams", ['query']);
this.resourceFactory = {
globalSearch: {
search: jasmine.createSpy('globalSearch.search()').andCallFake(function(query,callback) {
resourceCallback = callback;
})},
clientResource: {
get: jasmine.createSpy('clientResources.get()').andCallFake(function(params,callback) {
clientGet = callback;
})},
clientAccountResource : {
get: jasmine.createSpy('clientAccountResources.get()').andCallFake(function(params,callback){
clientAccountGet=callback;
})},
groupResource: {
get: jasmine.createSpy('groupResources.get()').andCallFake(function(params, callback) {
groupGet = callback;
})},
groupAccountResource : {
get: jasmine.createSpy('groupAccountResources.get()').andCallFake(function(params, callback){
groupAccountGet=callback;
})},
centerResource: {
get: jasmine.createSpy('centerResources.get()').andCallFake(function(params, callback) {
centerGet = callback;
})},
centerAccountResource : {
get: jasmine.createSpy('centerAccountResources.get()').andCallFake(function(params, callback){
centerAccountGet=callback;
})}
}
this.controller = new mifosX.controllers.SearchController(this.scope, this.route, this.resourceFactory);
});
it("should populate the search results on loading", function(){
resourceCallback({"data":"searchResults"});
expect(this.resourceFactory.globalSearch.search).toHaveBeenCalled();
expect(this.scope.searchResults.data).toBe("searchResults");
});
describe("when a clientId is selected",function(){
beforeEach(function() {
this.scope.getClientDetails("123");
clientGet({'clientId':'123'});
});
it("should set the clientId to selected when the clientId is selected",function(){
expect(this.scope.selected).toBe("123");
});
it("should set the group to blank",function(){
expect(this.scope.group).toBe("");
});
it("should set the center to blank",function(){
expect(this.scope.center).toBe("");
});
it("should get the client data",function(){
expect(this.scope.client.clientId).toBe("123");
});
it("should get the client account data",function(){
clientAccountGet({'account':'1'});
expect(this.scope.clientAccounts.account).toBe("1");
});
});
describe("when a groupId is selected",function(){
beforeEach(function(){
this.scope.getGroupDetails("10");
groupGet({'groupId':'10'});
});
it("should set the groupID to selected when the groupID is selected", function(){
expect(this.scope.selected).toBe("10");
});
it("should set the client to blank",function(){
expect(this.scope.client).toBe("");
});
it("should set the center to blank",function(){
expect(this.scope.center).toBe("");
});
it("should get the group information",function(){
expect(this.scope.group.groupId).toBe("10");
});
it("should get the group account information",function(){
groupAccountGet({'account':'2'});
expect(this.scope.groupAccounts.account).toBe("2");
});
});
describe("when a centerId is selected",function(){
beforeEach(function(){
this.scope.getCenterDetails("001");
centerGet({"centerId":"001"});
});
it("should set the centerID to selected when the centerID is selected", function(){
expect(this.scope.selected).toBe("001");
});
it("should set the client to blank",function(){
expect(this.scope.client).toBe("");
});
it("should set the group to blank",function(){
expect(this.scope.group).toBe("");
});
it("should get the center information",function(){
expect(this.scope.center.centerId).toBe("001");
});
it("should get the center account information",function(){
centerAccountGet({"account":"3"});
expect(this.scope.centerAccounts.account).toBe("3");
});
});
});