У меня есть такой контроллер.
app.controller('MyCtrl', function() {
let ctrl = this;
if (ctrl.contract) {
ctrl.contract.typeId = ctrl.contract.type.id;
} else {
ctrl.contract = {
name: 'test'
};
}
....
Он может иметь или не иметь contract
привязанного к нему.
Проблема возникает в моем тесте
describe('MyCtrl', () => {
let ctrl;
beforeEach(angular.mock.module('mymodule'));
beforeEach(angular.mock.module('ui.router'));
describe('Update contract', () => {
beforeEach(inject((_$controller_) => {
ctrl = _$controller_('MyCtrl', {}, {
contract: {
type: {
id: 2
}
}
});
}));
it('should set the contract.typeId to be the id of the type of the contract that was sent in', () => {
expect(ctrl.contract.typeId).toBe(ctrl.contract.type.id);
});
})
});
Я передаю объект контракта, что означает, что он должен войти в первый if
в моем контроллере и установить typeId
.Но это всегда входит в else
независимо от того, что я делаю.
Как я могу убедиться, что контроллер не запускается или не запускается до того, как все мои переменные будут привязаны к нему?