Я использую материал угловой и у меня есть форма с мат-флажком.
Над флажком указаны условия использования, и пользователь должен прокрутить условия использования вниз, чтобы включить флажок, который по умолчанию отключен.
Проблема в том, что с помощью директивы [disabled] отправьте сообщение (использование директивы ts blablabla нецелесообразно).
Мое решение - создать специальную директиву:
export class MyDisabledDirective {
@Input() set myDisabled(condition: boolean) {
const input = this.ngControl.control;
condition ? input.disable() : input.enable();
}
constructor( private ngControl: NgControl ) {
}
}
Хорошо, очень просто, все работает.
Теперь мне нужно выполнить юнит-тест для этой директивы, но это невозможно, все, что я пытаюсь, не работает.
Прямо сейчас характеристики выглядят так:
@Component({
selector: fake-component',
template: `
<button [myDisabled]="condition">Testing</button>
`,
})
class FakeComponent {
condition = true;
}
describe('DisabledDirective', () => {
let component: FakeComponent;
let fixture: ComponentFixture<FakeComponent>;
let button: DebugElement;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [FakeComponent, MyDisabledDirective],
providers: [NgControl],
});
fixture = TestBed.createComponent(FakeComponent);
component = fixture.componentInstance;
button = fixture.debugElement.query(By.css('button'));
});
it('should disable if the condition is true', () => {
component.condition = true;
expect(button.nativeElement.disabled).toBeTruthy();
});
it('should enable if the condition is false', () => {
component.condition = true;
expect(button.nativeElement.disabled).toBeFalsy();
});
});
Не работает, а button.nativeElement.disabled каждый раз ложно.
И мне интересно, хорош ли способ проведения тестов.
Надеюсь, Вы можете помочь мне, С уважением
console.log: