, . , , , , .
: -
, : -
inject(function($q){
var testData = {"message":"hi"};
mockSearchAPI.executeSearch = function(){
return $q.when(testData);
};
});
, : -
.controller('MainSearchCtrl', ['$scope','searchAPI', function ($scope, searchAPI) {
$scope.processQueryByField = function(field, value, pageNumber){
return searchAPI.executeSearch(field, value, pageNumber);
}
$scope.populateData = function(){
$scope.processQueryByField(1,1,1).then(function(data){
$scope.searchResults = data;
})
}
}]);
# 1: - , api .
it('should invoke execute search', function(){
spyOn(mockSearchAPI,'executeSearch');
var field = "testfield";
var value = "testvalue";
var pageNumber = 1;
scope.processQueryByField(field, value, pageNumber);
expect(mockSearchAPI.executeSearch).toHaveBeenCalled();
expect(mockSearchAPI.executeSearch).toHaveBeenCalledWith(field, value, pageNumber);
});
# 2: - , , .
it('should return a promise correctly', function(){
var field = "testfield";
var value = "testvalue";
var pageNumber = 1;
var promise = scope.processQueryByField(field, value, pageNumber);
expect(promise).toBeDefined();
scope.populateData();
$rootScope.$digest();
expect(scope.searchResults).toBeDefined();
expect(scope.searchResults.message).toEqual("hi");
});