@@ -13,6 +13,7 @@ jest.mock('../../Echart', () => ({
13
13
useEchart : jest . fn ( ( ) => ( {
14
14
ready : false ,
15
15
addToGroup : jest . fn ( ) ,
16
+ removeFromGroup : jest . fn ( ) ,
16
17
setupZoomSelect : jest . fn ( ) ,
17
18
on : jest . fn ( ) ,
18
19
} ) ) ,
@@ -32,6 +33,7 @@ describe('@lg-echarts/core/hooks/useChart', () => {
32
33
( useEchart as jest . Mock ) . mockReturnValue ( {
33
34
ready : false ,
34
35
addToGroup : jest . fn ( ) ,
36
+ removeFromGroup : jest . fn ( ) ,
35
37
setupZoomSelect : jest . fn ( ) ,
36
38
on : jest . fn ( ) ,
37
39
} ) ;
@@ -46,6 +48,7 @@ describe('@lg-echarts/core/hooks/useChart', () => {
46
48
( useEchart as jest . Mock ) . mockReturnValue ( {
47
49
ready : true ,
48
50
addToGroup : jest . fn ( ) ,
51
+ removeFromGroup : jest . fn ( ) ,
49
52
setupZoomSelect : jest . fn ( ) ,
50
53
on : jest . fn ( ) ,
51
54
} ) ;
@@ -62,6 +65,7 @@ describe('@lg-echarts/core/hooks/useChart', () => {
62
65
( useEchart as jest . Mock ) . mockReturnValue ( {
63
66
ready : true ,
64
67
addToGroup : jest . fn ( ) ,
68
+ removeFromGroup : jest . fn ( ) ,
65
69
setupZoomSelect,
66
70
on : jest . fn ( ) ,
67
71
} ) ;
@@ -87,6 +91,7 @@ describe('@lg-echarts/core/hooks/useChart', () => {
87
91
( useEchart as jest . Mock ) . mockReturnValue ( {
88
92
ready : true ,
89
93
addToGroup : jest . fn ( ) ,
94
+ removeFromGroup : jest . fn ( ) ,
90
95
setupZoomSelect : jest . fn ( ) ,
91
96
on,
92
97
} ) ;
@@ -113,6 +118,7 @@ describe('@lg-echarts/core/hooks/useChart', () => {
113
118
const mockEchartInstance = {
114
119
ready : true ,
115
120
addToGroup : jest . fn ( ) ,
121
+ removeFromGroup : jest . fn ( ) ,
116
122
setupZoomSelect : jest . fn ( ) ,
117
123
on : jest . fn ( ) ,
118
124
} ;
@@ -126,4 +132,44 @@ describe('@lg-echarts/core/hooks/useChart', () => {
126
132
ref : expect . any ( Function ) ,
127
133
} ) ;
128
134
} ) ;
135
+
136
+ test ( 'should call `addToGroup` when `groupId` is present' , async ( ) => {
137
+ const { useEchart } = require ( '../../Echart' ) ;
138
+ const addToGroup = jest . fn ( ) ;
139
+
140
+ ( useEchart as jest . Mock ) . mockReturnValue ( {
141
+ ready : true ,
142
+ addToGroup,
143
+ removeFromGroup : jest . fn ( ) ,
144
+ setupZoomSelect : jest . fn ( ) ,
145
+ on : jest . fn ( ) ,
146
+ } ) ;
147
+
148
+ const groupId = 'test-group' ;
149
+
150
+ renderHook ( ( ) => useChart ( { theme : 'dark' , groupId } ) ) ;
151
+
152
+ expect ( addToGroup ) . toHaveBeenCalledWith ( groupId ) ;
153
+ } ) ;
154
+
155
+ test ( 'should call `removeFromGroup` on unmount if `groupId` is present' , async ( ) => {
156
+ const { useEchart } = require ( '../../Echart' ) ;
157
+ const removeFromGroup = jest . fn ( ) ;
158
+
159
+ ( useEchart as jest . Mock ) . mockReturnValue ( {
160
+ ready : true ,
161
+ addToGroup : jest . fn ( ) ,
162
+ removeFromGroup,
163
+ setupZoomSelect : jest . fn ( ) ,
164
+ on : jest . fn ( ) ,
165
+ } ) ;
166
+
167
+ const groupId = 'test-group' ;
168
+
169
+ const { unmount } = renderHook ( ( ) => useChart ( { theme : 'dark' , groupId } ) ) ;
170
+
171
+ unmount ( ) ;
172
+
173
+ expect ( removeFromGroup ) . toHaveBeenCalled ( ) ;
174
+ } ) ;
129
175
} ) ;
0 commit comments