File tree Expand file tree Collapse file tree 2 files changed +19
-0
lines changed Expand file tree Collapse file tree 2 files changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -78,6 +78,9 @@ export function createObserver(
78
78
}
79
79
80
80
export function observeElement ( element : Instance ) {
81
+ if ( element . observer && ! observerElementsMap . has ( element . observer ) ) {
82
+ observerElementsMap . set ( element . observer , new Set < Instance > ( ) ) ;
83
+ }
81
84
observerElementsMap . get ( element . observer ) ?. add ( element ) ;
82
85
element . observer ! . observe ( element . target ! ) ;
83
86
}
Original file line number Diff line number Diff line change @@ -194,4 +194,20 @@ describe('findObserverElement', () => {
194
194
expect ( instance1 ) . toEqual ( entry1 ) ;
195
195
expect ( instance2 ) . toEqual ( entry2 ) ;
196
196
} ) ;
197
+
198
+ test ( 'two subsequent createObserver calls should not produce two observers' , ( ) => {
199
+ const observer1 = createObserver ( ) ;
200
+ const observer2 = createObserver ( ) ;
201
+ expect ( observer1 ) . toEqual ( observer2 ) ;
202
+ } ) ;
203
+
204
+ test ( 'observing element should add target to observerElementsMap even if there is no such observer key' , ( ) => {
205
+ const observer = createObserver ( ) ;
206
+ const entry = { observer, target : target1 } ;
207
+ observeElement ( entry ) ;
208
+ unobserveElement ( entry , entry . target ) ;
209
+ observeElement ( entry ) ;
210
+ const instance = findObserverElement ( observer , entry ) ;
211
+ expect ( instance ) . toEqual ( entry ) ;
212
+ } ) ;
197
213
} ) ;
You can’t perform that action at this time.
0 commit comments