text: 'use strict';
  
  Object.defineProperty(exports, '__esModule', {
    value: true
  });
  exports.default = void 0;
  
  function _jestWatcher() {
    const data = require('jest-watcher');
  
    _jestWatcher = function() {
      return data;
    };
  
    return data;
  }
  
  function _defineProperty(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      });
    } else {
      obj[key] = value;
    }
    return obj;
  }
  
  // TODO: Make underscored props `private`
  class TestNamePatternPrompt extends _jestWatcher().PatternPrompt {
    constructor(pipe, prompt) {
      super(pipe, prompt);
  
      _defineProperty(this, '_cachedTestResults', void 0);
  
      this._entityName = 'tests';
      this._cachedTestResults = [];
    }
  
    _onChange(pattern, options) {
      super._onChange(pattern, options);
  
      this._printPrompt(pattern);
    }
  
    _printPrompt(pattern) {
      const pipe = this._pipe;
      (0, _jestWatcher().printPatternCaret)(pattern, pipe);
      (0, _jestWatcher().printRestoredPatternCaret)(
        pattern,
        this._currentUsageRows,
        pipe
      );
    }
  
    _getMatchedTests(pattern) {
      let regex;
  
      try {
        regex = new RegExp(pattern, 'i');
      } catch (e) {
        return [];
      }
  
      const matchedTests = [];
  
      this._cachedTestResults.forEach(({testResults}) =>
        testResults.forEach(({title}) => {
          if (regex.test(title)) {
            matchedTests.push(title);
          }
        })
      );
  
      return matchedTests;
    }
  
    updateCachedTestResults(testResults = []) {
      this._cachedTestResults = testResults;
    }
  }
  
  exports.default = TestNamePatternPrompt;
  