UNPKG

2.28 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', {
4 value: true
5});
6exports.default = getSnapshotStatus;
7
8function _chalk() {
9 const data = _interopRequireDefault(require('chalk'));
10
11 _chalk = function () {
12 return data;
13 };
14
15 return data;
16}
17
18function _jestUtil() {
19 const data = require('jest-util');
20
21 _jestUtil = function () {
22 return data;
23 };
24
25 return data;
26}
27
28function _interopRequireDefault(obj) {
29 return obj && obj.__esModule ? obj : {default: obj};
30}
31
32/**
33 * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
34 *
35 * This source code is licensed under the MIT license found in the
36 * LICENSE file in the root directory of this source tree.
37 */
38const ARROW = ' \u203A ';
39const DOT = ' \u2022 ';
40
41const FAIL_COLOR = _chalk().default.bold.red;
42
43const SNAPSHOT_ADDED = _chalk().default.bold.green;
44
45const SNAPSHOT_UPDATED = _chalk().default.bold.green;
46
47const SNAPSHOT_OUTDATED = _chalk().default.bold.yellow;
48
49function getSnapshotStatus(snapshot, afterUpdate) {
50 const statuses = [];
51
52 if (snapshot.added) {
53 statuses.push(
54 SNAPSHOT_ADDED(
55 `${
56 ARROW + (0, _jestUtil().pluralize)('snapshot', snapshot.added)
57 } written.`
58 )
59 );
60 }
61
62 if (snapshot.updated) {
63 statuses.push(
64 SNAPSHOT_UPDATED(
65 `${
66 ARROW + (0, _jestUtil().pluralize)('snapshot', snapshot.updated)
67 } updated.`
68 )
69 );
70 }
71
72 if (snapshot.unmatched) {
73 statuses.push(
74 FAIL_COLOR(
75 `${
76 ARROW + (0, _jestUtil().pluralize)('snapshot', snapshot.unmatched)
77 } failed.`
78 )
79 );
80 }
81
82 if (snapshot.unchecked) {
83 if (afterUpdate) {
84 statuses.push(
85 SNAPSHOT_UPDATED(
86 `${
87 ARROW + (0, _jestUtil().pluralize)('snapshot', snapshot.unchecked)
88 } removed.`
89 )
90 );
91 } else {
92 statuses.push(
93 `${SNAPSHOT_OUTDATED(
94 `${
95 ARROW + (0, _jestUtil().pluralize)('snapshot', snapshot.unchecked)
96 } obsolete`
97 )}.`
98 );
99 }
100
101 snapshot.uncheckedKeys.forEach(key => {
102 statuses.push(` ${DOT}${key}`);
103 });
104 }
105
106 if (snapshot.fileDeleted) {
107 statuses.push(SNAPSHOT_UPDATED(`${ARROW}snapshot file removed.`));
108 }
109
110 return statuses;
111}