jest-standard-reporter
Version:
Jest reporter that uses stdout for messages and stderr for errors
64 lines (53 loc) • 1.44 kB
JavaScript
const chalk = require('chalk');
const { pluralize } = require('./utils');
const ARROW = ' \u203A ';
const DOT = ' \u2022 ';
const FAIL_COLOR = chalk.bold.red;
const SNAPSHOT_ADDED = chalk.bold.green;
const SNAPSHOT_UPDATED = chalk.bold.green;
const SNAPSHOT_OUTDATED = chalk.bold.yellow;
const getSnapshotStatus = (snapshot, afterUpdate) => {
const statuses = [];
if (snapshot.added) {
statuses.push(
SNAPSHOT_ADDED(
`${ARROW + pluralize('snapshot', snapshot.added)} written.`
)
);
}
if (snapshot.updated) {
statuses.push(
SNAPSHOT_UPDATED(
`${ARROW + pluralize('snapshot', snapshot.updated)} updated.`
)
);
}
if (snapshot.unmatched) {
statuses.push(
FAIL_COLOR(`${ARROW + pluralize('snapshot', snapshot.unmatched)} failed.`)
);
}
if (snapshot.unchecked) {
if (afterUpdate) {
statuses.push(
SNAPSHOT_UPDATED(
`${ARROW + pluralize('snapshot', snapshot.unchecked)} removed.`
)
);
} else {
statuses.push(
`${SNAPSHOT_OUTDATED(
`${ARROW + pluralize('snapshot', snapshot.unchecked)} obsolete`
)}.`
);
}
snapshot.uncheckedKeys.forEach(key => {
statuses.push(` ${DOT}${key}`);
});
}
if (snapshot.fileDeleted) {
statuses.push(SNAPSHOT_UPDATED(`${ARROW}snapshot file removed.`));
}
return statuses;
};
module.exports = getSnapshotStatus;