feat: initial commit
This commit is contained in:
238
node_modules/@jest/core/build/SnapshotInteractiveMode.js
generated
vendored
Normal file
238
node_modules/@jest/core/build/SnapshotInteractiveMode.js
generated
vendored
Normal file
@ -0,0 +1,238 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
function _ansiEscapes() {
|
||||
const data = _interopRequireDefault(require('ansi-escapes'));
|
||||
_ansiEscapes = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
function _chalk() {
|
||||
const data = _interopRequireDefault(require('chalk'));
|
||||
_chalk = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
function _jestUtil() {
|
||||
const data = require('jest-util');
|
||||
_jestUtil = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
function _jestWatcher() {
|
||||
const data = require('jest-watcher');
|
||||
_jestWatcher = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
function _interopRequireDefault(obj) {
|
||||
return obj && obj.__esModule ? obj : {default: obj};
|
||||
}
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
const {ARROW, CLEAR} = _jestUtil().specialChars;
|
||||
class SnapshotInteractiveMode {
|
||||
_pipe;
|
||||
_isActive;
|
||||
_updateTestRunnerConfig;
|
||||
_testAssertions;
|
||||
_countPaths;
|
||||
_skippedNum;
|
||||
constructor(pipe) {
|
||||
this._pipe = pipe;
|
||||
this._isActive = false;
|
||||
this._skippedNum = 0;
|
||||
}
|
||||
isActive() {
|
||||
return this._isActive;
|
||||
}
|
||||
getSkippedNum() {
|
||||
return this._skippedNum;
|
||||
}
|
||||
_clearTestSummary() {
|
||||
this._pipe.write(_ansiEscapes().default.cursorUp(6));
|
||||
this._pipe.write(_ansiEscapes().default.eraseDown);
|
||||
}
|
||||
_drawUIProgress() {
|
||||
this._clearTestSummary();
|
||||
const numPass = this._countPaths - this._testAssertions.length;
|
||||
const numRemaining = this._countPaths - numPass - this._skippedNum;
|
||||
let stats = _chalk().default.bold.dim(
|
||||
`${(0, _jestUtil().pluralize)('snapshot', numRemaining)} remaining`
|
||||
);
|
||||
if (numPass) {
|
||||
stats += `, ${_chalk().default.bold.green(
|
||||
`${(0, _jestUtil().pluralize)('snapshot', numPass)} updated`
|
||||
)}`;
|
||||
}
|
||||
if (this._skippedNum) {
|
||||
stats += `, ${_chalk().default.bold.yellow(
|
||||
`${(0, _jestUtil().pluralize)('snapshot', this._skippedNum)} skipped`
|
||||
)}`;
|
||||
}
|
||||
const messages = [
|
||||
`\n${_chalk().default.bold('Interactive Snapshot Progress')}`,
|
||||
ARROW + stats,
|
||||
`\n${_chalk().default.bold('Watch Usage')}`,
|
||||
`${_chalk().default.dim(`${ARROW}Press `)}u${_chalk().default.dim(
|
||||
' to update failing snapshots for this test.'
|
||||
)}`,
|
||||
`${_chalk().default.dim(`${ARROW}Press `)}s${_chalk().default.dim(
|
||||
' to skip the current test.'
|
||||
)}`,
|
||||
`${_chalk().default.dim(`${ARROW}Press `)}q${_chalk().default.dim(
|
||||
' to quit Interactive Snapshot Mode.'
|
||||
)}`,
|
||||
`${_chalk().default.dim(`${ARROW}Press `)}Enter${_chalk().default.dim(
|
||||
' to trigger a test run.'
|
||||
)}`
|
||||
];
|
||||
this._pipe.write(`${messages.filter(Boolean).join('\n')}\n`);
|
||||
}
|
||||
_drawUIDoneWithSkipped() {
|
||||
this._pipe.write(CLEAR);
|
||||
const numPass = this._countPaths - this._testAssertions.length;
|
||||
let stats = _chalk().default.bold.dim(
|
||||
`${(0, _jestUtil().pluralize)('snapshot', this._countPaths)} reviewed`
|
||||
);
|
||||
if (numPass) {
|
||||
stats += `, ${_chalk().default.bold.green(
|
||||
`${(0, _jestUtil().pluralize)('snapshot', numPass)} updated`
|
||||
)}`;
|
||||
}
|
||||
if (this._skippedNum) {
|
||||
stats += `, ${_chalk().default.bold.yellow(
|
||||
`${(0, _jestUtil().pluralize)('snapshot', this._skippedNum)} skipped`
|
||||
)}`;
|
||||
}
|
||||
const messages = [
|
||||
`\n${_chalk().default.bold('Interactive Snapshot Result')}`,
|
||||
ARROW + stats,
|
||||
`\n${_chalk().default.bold('Watch Usage')}`,
|
||||
`${_chalk().default.dim(`${ARROW}Press `)}r${_chalk().default.dim(
|
||||
' to restart Interactive Snapshot Mode.'
|
||||
)}`,
|
||||
`${_chalk().default.dim(`${ARROW}Press `)}q${_chalk().default.dim(
|
||||
' to quit Interactive Snapshot Mode.'
|
||||
)}`
|
||||
];
|
||||
this._pipe.write(`${messages.filter(Boolean).join('\n')}\n`);
|
||||
}
|
||||
_drawUIDone() {
|
||||
this._pipe.write(CLEAR);
|
||||
const numPass = this._countPaths - this._testAssertions.length;
|
||||
let stats = _chalk().default.bold.dim(
|
||||
`${(0, _jestUtil().pluralize)('snapshot', this._countPaths)} reviewed`
|
||||
);
|
||||
if (numPass) {
|
||||
stats += `, ${_chalk().default.bold.green(
|
||||
`${(0, _jestUtil().pluralize)('snapshot', numPass)} updated`
|
||||
)}`;
|
||||
}
|
||||
const messages = [
|
||||
`\n${_chalk().default.bold('Interactive Snapshot Result')}`,
|
||||
ARROW + stats,
|
||||
`\n${_chalk().default.bold('Watch Usage')}`,
|
||||
`${_chalk().default.dim(`${ARROW}Press `)}Enter${_chalk().default.dim(
|
||||
' to return to watch mode.'
|
||||
)}`
|
||||
];
|
||||
this._pipe.write(`${messages.filter(Boolean).join('\n')}\n`);
|
||||
}
|
||||
_drawUIOverlay() {
|
||||
if (this._testAssertions.length === 0) {
|
||||
return this._drawUIDone();
|
||||
}
|
||||
if (this._testAssertions.length - this._skippedNum === 0) {
|
||||
return this._drawUIDoneWithSkipped();
|
||||
}
|
||||
return this._drawUIProgress();
|
||||
}
|
||||
put(key) {
|
||||
switch (key) {
|
||||
case 's':
|
||||
if (this._skippedNum === this._testAssertions.length) break;
|
||||
this._skippedNum += 1;
|
||||
|
||||
// move skipped test to the end
|
||||
this._testAssertions.push(this._testAssertions.shift());
|
||||
if (this._testAssertions.length - this._skippedNum > 0) {
|
||||
this._run(false);
|
||||
} else {
|
||||
this._drawUIDoneWithSkipped();
|
||||
}
|
||||
break;
|
||||
case 'u':
|
||||
this._run(true);
|
||||
break;
|
||||
case 'q':
|
||||
case _jestWatcher().KEYS.ESCAPE:
|
||||
this.abort();
|
||||
break;
|
||||
case 'r':
|
||||
this.restart();
|
||||
break;
|
||||
case _jestWatcher().KEYS.ENTER:
|
||||
if (this._testAssertions.length === 0) {
|
||||
this.abort();
|
||||
} else {
|
||||
this._run(false);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
abort() {
|
||||
this._isActive = false;
|
||||
this._skippedNum = 0;
|
||||
this._updateTestRunnerConfig(null, false);
|
||||
}
|
||||
restart() {
|
||||
this._skippedNum = 0;
|
||||
this._countPaths = this._testAssertions.length;
|
||||
this._run(false);
|
||||
}
|
||||
updateWithResults(results) {
|
||||
const hasSnapshotFailure = !!results.snapshot.failure;
|
||||
if (hasSnapshotFailure) {
|
||||
this._drawUIOverlay();
|
||||
return;
|
||||
}
|
||||
this._testAssertions.shift();
|
||||
if (this._testAssertions.length - this._skippedNum === 0) {
|
||||
this._drawUIOverlay();
|
||||
return;
|
||||
}
|
||||
|
||||
// Go to the next test
|
||||
this._run(false);
|
||||
}
|
||||
_run(shouldUpdateSnapshot) {
|
||||
const testAssertion = this._testAssertions[0];
|
||||
this._updateTestRunnerConfig(testAssertion, shouldUpdateSnapshot);
|
||||
}
|
||||
run(failedSnapshotTestAssertions, onConfigChange) {
|
||||
if (!failedSnapshotTestAssertions.length) {
|
||||
return;
|
||||
}
|
||||
this._testAssertions = [...failedSnapshotTestAssertions];
|
||||
this._countPaths = this._testAssertions.length;
|
||||
this._updateTestRunnerConfig = onConfigChange;
|
||||
this._isActive = true;
|
||||
this._run(false);
|
||||
}
|
||||
}
|
||||
exports.default = SnapshotInteractiveMode;
|
Reference in New Issue
Block a user