В настоящее время я сталкиваюсь с проблемой в одном из моих Angular тестов по умолчанию для компонента, который только визуализирует комп. , не в исполнении браузера ... Я не понимаю, почему ....
Вот шаблон подсказка. html
<svg:g #rootElement [attr.transform]='translate'>
<text lengthAdjust="spacingAndGlyphs" preserveAspectRatio=" xMidYMid slice" data-name="Hint">
<tspan>
{{dimension1}} {{spliter}} {{dimension2}}
</tspan>
</text>
</svg:g>
Файл TS компонента:
@Component({
selector: '[node-hint]',
templateUrl: './hint.component.html',
styleUrls: ['./hint.component.css']
})
export class HintComponent implements OnInit, OnChanges, AfterViewInit {
@ViewChild('rootElement') rootElement: ElementRef;
constructor() {}
ngOnInit() {}
ngAfterViewInit() {
var element = this.rootElement.nativeElement as SVGGraphicsElement;
this.componentWidth = element.getBBox().width;
this.callSomeMethod();
}
ngOnChanges() {
this.callSomeMethod();
}
callSomeMethod(){}
}
А вот тест по умолчанию, который не прошел:
describe('HintComponent', () => {
let component: HintComponent;
let fixture: ComponentFixture<HintComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [HintComponent]
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(HintComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
afterEach(() => {});
it('should create', () => {
expect(component).toBeTruthy();
});
});
В других методах жизненного цикла, таких как ngAfterViewChecked, ошибки нет, но мне нужна ширина компонента до инициализации содержимого !
Как я могу исправить эту ошибку? Заранее спасибо!