Yatrix Yatrix - 3 months ago 15
AngularJS Question

Why isn't $injector finding $state in my unit test?

The following is my module and unit test set-up. When I try to set $

state
,
$injector.get("$state")
throws the always fun Unknown provider: $stateProvider <- $state error and I don't understand why.

angular.module("my-module", [
//Third Party
"ui.bootstrap",
"ui.router",
"toaster",
"angular-loading-bar",
"ngAnimate",
"ngSanitize",
"ApplicationInsightsModule",
"pascalprecht.translate"
]);

describe("something descriptive and helpful", (): void => {
// a bunch of other service variables....
var $state: any;

// I've tried with and without this line
beforeEach(() => angular.module("ui.router"));

beforeEach(() => {

angular.module("my-module");

inject(($injector: ng.auto.IInjectorService): void => {
// a bunch of other service variable assignments
$state = $injector.get("$state");
});
});

Answer

You need to call

angular.mock.module("my-module")

to load the module.