@@ -12,15 +12,33 @@ if (!GlobalRegistrator.isRegistered) {
1212 GlobalRegistrator . register ( )
1313 expect . extend ( matchers )
1414
15+ const methods = [ 'toMatchSnapshot' , 'toMatchInlineSnapshot' , 'toContain' ]
16+
1517 const originalExpect = expect
1618 test . mock . module ( 'bun:test' , ( ) => {
1719 const expect = ( value : unknown ) => {
18- if ( isReactElement ( value ) ) {
19- const { container } = render ( value as ReactElement )
20- return originalExpect ( formatHTMLElement ( container ) )
21- }
22- if ( value instanceof HTMLElement ) {
23- return originalExpect ( formatHTMLElement ( value ) )
20+ if ( value instanceof HTMLElement || isReactElement ( value ) ) {
21+ const element =
22+ value instanceof HTMLElement
23+ ? value
24+ : ( render ( value as ReactElement ) . container
25+ . children [ 0 ] as HTMLElement )
26+ const stringRet = originalExpect ( formatHTMLElement ( element ) )
27+ const jsonRet = originalExpect ( element )
28+ for ( const method of methods ) {
29+ ; ( jsonRet as unknown as Record < string , unknown > ) [ method ] = (
30+ ...args : unknown [ ]
31+ ) => {
32+ return (
33+ stringRet as unknown as Record <
34+ string ,
35+ ( ...args : unknown [ ] ) => unknown
36+ >
37+ ) [ method ] ?.( ...( args as [ object , string ] ) )
38+ }
39+ }
40+
41+ return jsonRet
2442 }
2543 return originalExpect ( value )
2644 }
0 commit comments