var defaultVariables = {
"globalConfig": {"SERVER_URL": "http://testServerPath/"}
};
var defaultDependencies = {
"$httpBackend": "$httpBackend",
"$rootScope": "$rootScope",
"$timeout": "$timeout",
"$interval": "$interval",
"$controller": "$controller",
"$state": "$state"
};
var testHttpMock = function (method, mockUrl, httpResponseMock, dataPromise) {
$httpBackend.expect(method, mockUrl).respond({data: httpResponseMock});
var functionResult;
dataPromise.then(function (response) {
functionResult = response.data;
});
$httpBackend.flush();
return functionResult;
};
var testInjectVariables = function (variables) {
if (defaultVariables) {
angular.forEach(defaultVariables, function (variableValue, variableName) {
window[variableName] = variableValue;
});
}
if (variables) {
angular.forEach(variables, function (variableValue, variableName) {
window[variableName] = variableValue;
});
}
};
var testInjectDependencies = function (dependencies) {
return inject(function ($injector) {
/*jslint evil: true */
if (defaultDependencies) {
angular.forEach(defaultDependencies, function (dependencyValue, dependencyName) {
window[dependencyName] = eval($injector.get(dependencyValue));
});
}
if (dependencies) {
angular.forEach(dependencies, function (dependencyValue, dependencyName) {
window[dependencyName] = eval($injector.get(dependencyValue));
});
}
})
};
describe('testSomething', function () {
//-----------------------------------------------------------------------------------
//UNIT GLOBALS
var variables = {};
var dependencies = {};
//-----------------------------------------------------------------------------------
beforeEach(function () {
//MODULE INJECTION
module("ngHRM.admin");
//SERVICE INJECTION
dependencies.CustomConstants = "CustomConstants";
dependencies.CustomizerService = "CustomizerService";
//VARIABLE INJECTION
variables.something = {"key": "value"}};
variables.something_more = "foo";
//PROVIDERS
module(function ($provide) {
//VALUES -> $provide.value('variable', variable);
//SERVICES -> $provide.service('ServiceName', function () {}
//FUNCTIONS -> this.variable = jasmine.createSpy('variable').and.callFake(function () { return result; });
});
});
//-----------------------------------------------------------------------------------
//LOAD THIS IN EVERY <it>
function doInject() {
//AUTOMATIC DEPENDENCY INJECTION
testInjectVariables(variables);
testInjectDependencies(dependencies);
//CUSTOM INJECTIONS
inject(function () {
//SCOPE -> scope = $rootScope.$new();
//SPY -> spyOn(,);
//CTRL -> controller = $controller('controllerName', { $scope: scope, $state: state });
});
}
//-----------------------------------------------------------------------------------
//DEFAULT afterEach if we have $httpBackend injected
afterEach(function () {
if (defaultDependencies.$httpBackend) {
$httpBackend.verifyNoOutstandingExpectation();
$httpBackend.verifyNoOutstandingRequest();
}
});
// ------------------------------------ TEST CASES ---------------------------------------
it('should happen something', function () {
doInject();
});
});