1. 'use strict';
    
  2. 
    
  3. const semver = require('semver');
    
  4. const {ReactVersion} = require('../../../ReactVersions');
    
  5. 
    
  6. const {
    
  7.   DARK_MODE_DIMMED_WARNING_COLOR,
    
  8.   DARK_MODE_DIMMED_ERROR_COLOR,
    
  9.   DARK_MODE_DIMMED_LOG_COLOR,
    
  10.   LIGHT_MODE_DIMMED_WARNING_COLOR,
    
  11.   LIGHT_MODE_DIMMED_ERROR_COLOR,
    
  12.   LIGHT_MODE_DIMMED_LOG_COLOR,
    
  13. } = require('react-devtools-extensions/utils');
    
  14. 
    
  15. // DevTools stores preferences between sessions in localStorage
    
  16. if (!global.hasOwnProperty('localStorage')) {
    
  17.   global.localStorage = require('local-storage-fallback').default;
    
  18. }
    
  19. 
    
  20. // Mimic the global we set with Webpack's DefinePlugin
    
  21. global.__DEV__ = process.env.NODE_ENV !== 'production';
    
  22. global.__TEST__ = true;
    
  23. 
    
  24. global.process.env.DARK_MODE_DIMMED_WARNING_COLOR =
    
  25.   DARK_MODE_DIMMED_WARNING_COLOR;
    
  26. global.process.env.DARK_MODE_DIMMED_ERROR_COLOR = DARK_MODE_DIMMED_ERROR_COLOR;
    
  27. global.process.env.DARK_MODE_DIMMED_LOG_COLOR = DARK_MODE_DIMMED_LOG_COLOR;
    
  28. global.process.env.LIGHT_MODE_DIMMED_WARNING_COLOR =
    
  29.   LIGHT_MODE_DIMMED_WARNING_COLOR;
    
  30. global.process.env.LIGHT_MODE_DIMMED_ERROR_COLOR =
    
  31.   LIGHT_MODE_DIMMED_ERROR_COLOR;
    
  32. global.process.env.LIGHT_MODE_DIMMED_LOG_COLOR = LIGHT_MODE_DIMMED_LOG_COLOR;
    
  33. 
    
  34. global._test_react_version = (range, testName, callback) => {
    
  35.   const reactVersion = process.env.REACT_VERSION || ReactVersion;
    
  36.   const shouldPass = semver.satisfies(reactVersion, range);
    
  37. 
    
  38.   if (shouldPass) {
    
  39.     test(testName, callback);
    
  40.   } else {
    
  41.     test.skip(testName, callback);
    
  42.   }
    
  43. };
    
  44. 
    
  45. global._test_react_version_focus = (range, testName, callback) => {
    
  46.   const reactVersion = process.env.REACT_VERSION || ReactVersion;
    
  47.   const shouldPass = semver.satisfies(reactVersion, range);
    
  48. 
    
  49.   if (shouldPass) {
    
  50.     // eslint-disable-next-line jest/no-focused-tests
    
  51.     test.only(testName, callback);
    
  52.   } else {
    
  53.     test.skip(testName, callback);
    
  54.   }
    
  55. };
    
  56. 
    
  57. global._test_ignore_for_react_version = (testName, callback) => {
    
  58.   test.skip(testName, callback);
    
  59. };