xieziyu / ngx-echarts

An angular (ver >= 2.x) directive for ECharts (ver >= 3.x)
https://xieziyu.github.io/ngx-echarts/
MIT License
1.11k stars 197 forks source link

Error when using change detection in component tests (jest) #385

Open homj opened 1 year ago

homj commented 1 year ago

Problem

The NgxEchartsDirective is not properly handling being destroyed when used in component tests in combination with explicit change detection calls

Observed behavior

When testing the usage of the echarts directive within a parent component and triggering change detection via fixture.detectChanges(), jest reports an error:

Error: 1 component threw errors during cleanup

Expected behavior

The directive should be destroyed without causing errors

Potential causes

I assume this is due to the use of ChangeFilter and subscriptions in ngOnChanges that are not being unsubscribed in ngOnDestroy

Technologies & Versions:

Angular: 15.0.1 ngx-echarts: 15.0.1 jest: 28.1.1

xieziyu commented 1 year ago

Thanks for your feedback. I will look into this issue. If you could provide your test specs, it would be very helpful.

homj commented 1 year ago

Sure, here's a gist: https://gist.github.com/homj/24e2d3898d013013616304d1faff4315

xieziyu commented 1 year ago

Hi @homj , Please try to upgrade ngx-echarts@v15.0.2. The ChangeFilter subscriptions are unsubscribed now. But I'm not sure if it solves this issue, as I didn't reproduce this error using the spec in gist. Looking forward to your reply.