У нас есть несколько тестов Жасмин, написанных для Angular 4, и PrimeNG Controls также версии 4, которые работали нормально. Рабочий тест против этого был:
describe('When invalid', () => {
beforeEach(fakeAsync(() => {
fixture.detectChanges();
tick();
comp.request.mpan = '1234567890123';
comp.request.meterSerialNumber = '12345';
comp.request.effectiveDateTime = moment().startOf('day').toDate();
fixture.detectChanges();
tick(1000);
}));
it('Effective Date Time has validation errors', () => {
expect(comp.form.controls['effectiveDateTime'].status).toBe('INVALID');
});
});
и с помощью инструментов разработчика chrome я мог видеть все элементы управления формой. Теперь после обновления до Angular 9 и до последней версии Jasmine я больше не вижу элементы управления в форме.
Так что в моем исходном коде я мог видеть:
![original from chrome](https://i.stack.imgur.com/jYMao.png)
и теперь я получаю следующее, а элементы управления пусты:
![enter image description here](https://i.stack.imgur.com/YyYw7.png)
Если я изменю свое ожидание заявления выше, чтобы быть:
const calendarControl = fixture.debugElement.nativeElement;
expect(calendarControl.querySelector('#effectiveDateTime').status).toBe('INVALID');
, тогда я получаю элемент управления, но, поскольку 'status' объявлен в абстрактном классе, я все еще не могу получить это свойство. CalendarControl - это p-календарь от primeNG, но я не думаю, что это проблема, так как я не вижу никаких элементов управления в форме через инструменты разработчика сейчас, независимо от типа элемента управления.