1. import {printStore} from 'react-devtools-shared/src/devtools/utils';
    
  2. 
    
  3. // test() is part of Jest's serializer API
    
  4. export function test(maybeState) {
    
  5.   if (maybeState === null || typeof maybeState !== 'object') {
    
  6.     return false;
    
  7.   }
    
  8. 
    
  9.   const hasOwnProperty = Object.prototype.hasOwnProperty.bind(maybeState);
    
  10.   // Duck typing at its finest.
    
  11.   return (
    
  12.     hasOwnProperty('inspectedElementID') &&
    
  13.     hasOwnProperty('ownerFlatTree') &&
    
  14.     hasOwnProperty('ownerSubtreeLeafElementID')
    
  15.   );
    
  16. }
    
  17. 
    
  18. // print() is part of Jest's serializer API
    
  19. export function print(state, serialize, indent) {
    
  20.   // This is a big of a hack but it works around having to pass in a meta object e.g. {store, state}.
    
  21.   // DevTools tests depend on a global Store object anyway (initialized via setupTest).
    
  22.   const store = global.store;
    
  23. 
    
  24.   return printStore(store, false, state);
    
  25. }