Пытаюсь сделать простой angular тест, просто жду, что компонент создан. Я использую эту библиотеку resize-Observer-polyfill для обработки изменения размера элемента в моем шаблоне, но похоже, что Jest не нравится, когда я пытаюсь создать новый экземпляр объекта ResizeObserver
.
Вот код:
inline-gallery.component.ts
import {
AfterViewInit,
ChangeDetectorRef,
Component,
ElementRef,
ViewChild,
} from '@angular/core';
import ResizeObserver from 'resize-observer-polyfill';
@Component({
selector: 'app-inline-gallery',
templateUrl: './inline-gallery.component.html',
styleUrls: ['./inline-gallery.component.scss']
})
export class InlineGalleryComponent implements AfterViewInit {
@ViewChild('viewport') viewport: ElementRef<HTMLDivElement>;
constructor(private cd: ChangeDetectorRef) {}
ngAfterViewInit(): void {
const viewportObserver = new ResizeObserver(_ => {
console.log('test');
});
viewportObserver.observe(this.viewport.nativeElement);
}
}
inline-gallery.component .spe c .ts
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { InlineGalleryComponent } from './inline-gallery.component';
import { I18nModule } from '../../../i18n/i18n.module';
import {PreventDefaultDirective} from '../../directives/prevent-default/prevent-default.directive';
describe('GalleryComponent', () => {
let component: InlineGalleryComponent;
let fixture: ComponentFixture<InlineGalleryComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
InlineGalleryComponent,
PreventDefaultDirective
],
imports: [
I18nModule
]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(InlineGalleryComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
Это ошибка при запуске теста:
FAIL src/app/shared/components/gallery/inline-gallery.component.spec.ts (5.678 s)
GalleryComponent
✕ should create (345 ms)
● GalleryComponent › should create
TypeError: resize_observer_polyfill_1.default is not a constructor
30 |
31 | ngAfterViewInit(): void {
> 32 | const viewportObserver = new ResizeObserver(_ => {
| ^
33 | console.log('test');
at InlineGalleryComponent.ngAfterViewInit (src/app/shared/components/gallery/inline-gallery.component.ts:32:30)
at callProviderLifecycles (../packages/core/src/view/provider.ts:570:14)