тесты не работают после обновления Angular с 9 по 10

#angular #testing #jestjs #angular10

#angular #тестирование #jestjs #angular10

Вопрос:

После того, как я обновил Angular с 9 по 10, все мои шутливые тесты не работают. Они отлично работали до обновления. Как мне это исправить?

Вот один из моих тестов:

 @Component({
  selector: 'prof-notifications-form',
  template: '',
})

describe('NotificationsFormComponent', () => {
  let component: NotificationsFormComponent;
  let fixture: ComponentFixture<NotificationsFormComponent>;

  beforeEach(
    waitForAsync(() => {
      TestBed.configureTestingModule({
        imports: [ReactiveFormsModule, MatDialogModule, UiButtonModule],
        declarations: [NotificationsFormComponent ],
      }).compileComponents();
    })
  );

  beforeEach(() => {
    fixture = TestBed.createComponent(NotificationsFormComponent);
    component = fixture.componentInstance;
    component.urlResolver = jest.fn(url => `http://someSampleUrl.test/${url}`);
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});
  

Вот ошибка:

 Unexpected value 'CommonModule' imported by the module 'UiButtonModule'. Please add an @NgModule annotation.
  

Комментарии:

1. Можете ли вы показать UiButtonModule? Если это модуль, он должен находиться в импорте, а не в объявлениях. Angular 10 выполняет больше проверок типов, чем раньше.

2. Спасибо, Боян, но это просто выдает мне еще одну ошибку, Iv’e обновил код и сообщение об ошибке соответствующим образом. Да, UiButtonModule — это модуль

3. Ну, вы исправили свою первоначальную ошибку. Я думаю, что у вас может быть ошибка в UiButtonModule, можете ли вы это показать? Убедитесь, что CommonModule находится в импорте

Ответ №1:

Я решил это 🙂 Просто нужно было обновить node с 12 до 14, чтобы заставить его работать!