Есть ли способ изменить постоянное значение, которое отправляется в конфигурационную функцию модуля для модульного теста?
У меня есть следующее (скрипка здесь):
//--- CODE --------------------------
var module = angular.module("myApp", []);
module.constant("myConstant", "foo");
module.provider("awesomeStuff", function () {
var value;
this.setValue = function (val) {
value = val;
};
this.$get = function () {
return {
myValue: value
};
};
});
module.config(function (myConstant, awesomeStuffProvider) {
//want to mock myConstant
awesomeStuffProvider.setValue(myConstant);
});
//--- SPECS -------------------------
describe("foo", function() {
beforeEach(angular.mock.module("myApp", function ($provide) {
//Attempt to override the myConstant value that gets passed to config
$provide.constant("myConstant", "bar");
}));
it("has a value of bar", inject(function(awesomeStuff, $injector) {
expect($injector.get("myConstant")).toBe("bar");
expect(awesomeStuff.myValue).toBe("bar");
}));
});
Я знаю, что это тривиальный пример, но я хочу знать, можно ли его вставить в конфигурацию другую константу... Я знаю, что можно получить ссылку на провайдера и вызвать функцию setValue из модульного теста ( т.е. настройку провайдера через этот SO-сообщение), но это не то, что я ищу.
Спасибо за любую помощь.