@@ -8,7 +8,7 @@ const state: State = {
88 nodeObservers : new Map ( ) ,
99} ;
1010
11- class MockedResizeObserver {
11+ class MockedResizeObserver implements ResizeObserver {
1212 nodes : HTMLElement [ ] = [ ] ;
1313 callback : ResizeObserverCallback ;
1414
@@ -64,9 +64,12 @@ class MockedResizeObserver {
6464 } ;
6565}
6666
67- function elementToEntry ( element : HTMLElement ) {
67+ function elementToEntry ( element : HTMLElement ) : ResizeObserverEntry {
6868 const boundingClientRect = element . getBoundingClientRect ( ) ;
6969
70+ // @ts -ignore
71+ // for some reason, the typescript type definition for ResizeObserverEntry
72+ // is mismatched between tsdx typecheck and vscode typecheck
7073 return {
7174 borderBoxSize : [
7275 {
@@ -81,14 +84,25 @@ function elementToEntry(element: HTMLElement) {
8184 } ,
8285 ] ,
8386 contentRect : boundingClientRect ,
87+ // devicePixelContentBoxSize: [
88+ // // assume device pixel ratio of 1
89+ // {
90+ // blockSize: boundingClientRect.width,
91+ // inlineSize: boundingClientRect.height,
92+ // },
93+ // ],
8494 target : element ,
8595 } ;
8696}
8797
8898function mockResizeObserver ( ) {
8999 const savedImplementation = window . ResizeObserver ;
90100
91- window . ResizeObserver = MockedResizeObserver ;
101+ Object . defineProperty ( window , 'ResizeObserver' , {
102+ writable : true ,
103+ configurable : true ,
104+ value : MockedResizeObserver ,
105+ } ) ;
92106
93107 afterAll ( ( ) => {
94108 window . ResizeObserver = savedImplementation ;
0 commit comments