Я хочу UT событие onchange для поля выбора.
HTML -
<select id="basetype" ng-model="role.baseType"
ng-options="basePolicy"
ng-change="populateSettingsForBaseType()">
</select>
Обработчик событий контроллера -
private addBaseTypeChangeHandler(): void {
this.$scope.populateSettingsForBaseType = () => {
//someCode
};
}
Я хочу убедиться, что обработчик события называется событием onchange -
it('should add the certificate validator', function() {
spyOn($scope, 'populateSettingsForBaseType').and.callThrough();
const html = '<select id="basetype" ng-change="populateSettingsForBaseType()" ng-model="model"></select>';
const element = $compile(html)($scope);
const elem = element.find('select').trigger('change');
const ngModel = element.controller('ngModel');
ngModel.$viewValue = 'full';
$scope.$digest();
expect($scope.populateSettingsForBaseType).toHaveBeenCalled();
});
Это не работает. Как правильно вызвать событие и убедиться, что обработчик вызывается из UT.