@@ -103,4 +103,30 @@ describe("CartesianChart: visibility", () => {
103103 hiddenSeries : [ "L1" , "L2" ] ,
104104 } ) ;
105105 } ) ;
106+
107+ test . each < CartesianChartProps . SeriesOptions > ( [
108+ { type : "area" , name : "new" , data : [ ] } ,
109+ { type : "line" , name : "new" , data : [ ] } ,
110+ { type : "column" , name : "new" , data : [ ] } ,
111+ { type : "scatter" , name : "new" , data : [ ] } ,
112+ { type : "x-threshold" , name : "new" , value : 0 } ,
113+ { type : "y-threshold" , name : "new" , value : 0 } ,
114+ ] ) ( "new series become visible in the legend, type=$type" , ( newSeries ) => {
115+ const { rerender } = renderCartesianChart ( { ...defaultProps , series : [ ] } ) ;
116+ expect ( getVisibilityState ( ) . allLegendItems ) . toEqual ( [ ] ) ;
117+
118+ rerender ( { highcharts, series : [ newSeries ] } ) ;
119+ expect ( getVisibilityState ( ) . allLegendItems ) . toEqual ( [ "new" ] ) ;
120+
121+ rerender ( { highcharts, series : [ newSeries , { ...newSeries , name : "new-2" } ] } ) ;
122+ expect ( getVisibilityState ( ) . allLegendItems ) . toEqual ( [ "new" , "new-2" ] ) ;
123+ } ) ;
124+
125+ test ( "errorbar series do not become visible in the legend" , ( ) => {
126+ const { rerender } = renderCartesianChart ( { ...defaultProps , series : lineSeries } ) ;
127+ expect ( getVisibilityState ( ) . allLegendItems ) . toEqual ( [ "L1" , "L2" ] ) ;
128+
129+ rerender ( { highcharts, series : [ ...lineSeries , { type : "errorbar" , name : "EB" , linkedTo : "L2" , data : [ ] } ] } ) ;
130+ expect ( getVisibilityState ( ) . allLegendItems ) . toEqual ( [ "L1" , "L2" ] ) ;
131+ } ) ;
106132} ) ;
0 commit comments