Don't use ANSI codes if stdout isn't a TTY (#2903)
Don't use ANSI codes if stdout isn't a TTYmaster
parent
f82fcbc98e
commit
201105334d
|
@ -274,7 +274,7 @@ function eachFilename(argv, patterns, callback) {
|
|||
|
||||
function formatFiles(argv) {
|
||||
eachFilename(argv, argv.__filePatterns, (filename, options) => {
|
||||
if (argv["write"]) {
|
||||
if (argv["write"] && process.stdout.isTTY) {
|
||||
// Don't use `console.log` here since we need to replace this line.
|
||||
process.stdout.write(filename);
|
||||
}
|
||||
|
@ -315,9 +315,11 @@ function formatFiles(argv) {
|
|||
}
|
||||
|
||||
if (argv["write"]) {
|
||||
// Remove previously printed filename to log it with duration.
|
||||
readline.clearLine(process.stdout, 0);
|
||||
readline.cursorTo(process.stdout, 0, null);
|
||||
if (process.stdout.isTTY) {
|
||||
// Remove previously printed filename to log it with duration.
|
||||
readline.clearLine(process.stdout, 0);
|
||||
readline.cursorTo(process.stdout, 0, null);
|
||||
}
|
||||
|
||||
// Don't write the file if it won't change in order not to invalidate
|
||||
// mtime based caches.
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`no file diffs with --list-different + formatted file 1`] = `Array []`;
|
||||
|
||||
exports[`no file diffs with --list-different + formatted file 2`] = `Array []`;
|
||||
|
||||
exports[`output with --list-different + unformatted differs when piped 1`] = `
|
||||
"unformated.js[2K[1Gunformated.js
|
||||
"
|
||||
`;
|
||||
|
||||
exports[`output with --list-different + unformatted differs when piped 2`] = `
|
||||
"unformated.js
|
||||
"
|
||||
`;
|
|
@ -0,0 +1,50 @@
|
|||
"use strict";
|
||||
|
||||
const runPrettier = require("../runPrettier");
|
||||
|
||||
test("output with --list-different + unformatted differs when piped", () => {
|
||||
const result0 = runPrettier(
|
||||
"cli/write",
|
||||
["--write", "--list-different", "--no-color", "unformated.js"],
|
||||
{ stdoutIsTTY: true }
|
||||
);
|
||||
|
||||
const result1 = runPrettier(
|
||||
"cli/write",
|
||||
["--write", "--list-different", "--no-color", "unformated.js"],
|
||||
{ stdoutIsTTY: false }
|
||||
);
|
||||
|
||||
expect(result0.stdout).toMatchSnapshot();
|
||||
expect(result0.status).toEqual(1);
|
||||
|
||||
expect(result1.stdout).toMatchSnapshot();
|
||||
expect(result1.status).toEqual(1);
|
||||
|
||||
expect(result0.stdout).not.toEqual(result1.stdout);
|
||||
expect(result0.stdout.length).toBeGreaterThan(result1.stdout.length);
|
||||
expect(result0.write).toEqual(result1.write);
|
||||
});
|
||||
|
||||
test("no file diffs with --list-different + formatted file", () => {
|
||||
const result0 = runPrettier(
|
||||
"cli/write",
|
||||
["--write", "--list-different", "--no-color", "formated.js"],
|
||||
{ stdoutIsTTY: true }
|
||||
);
|
||||
const result1 = runPrettier(
|
||||
"cli/write",
|
||||
["--write", "--list-different", "--no-color", "formated.js"],
|
||||
{ stdoutIsTTY: false }
|
||||
);
|
||||
|
||||
expect(result0.write).toMatchSnapshot();
|
||||
expect(result0.status).toEqual(0);
|
||||
|
||||
expect(result1.write).toMatchSnapshot();
|
||||
expect(result1.status).toEqual(0);
|
||||
|
||||
expect(result0.stdout).not.toEqual(result1.stdout);
|
||||
expect(result0.stdout.length).toBeGreaterThan(result1.stdout.length);
|
||||
expect(result0.write).toEqual(result1.write);
|
||||
});
|
|
@ -52,9 +52,11 @@ function runPrettier(dir, args, options) {
|
|||
const originalArgv = process.argv;
|
||||
const originalExitCode = process.exitCode;
|
||||
const originalStdinIsTTY = process.stdin.isTTY;
|
||||
const originalStdoutIsTTY = process.stdout.isTTY;
|
||||
|
||||
process.chdir(normalizeDir(dir));
|
||||
process.stdin.isTTY = !!options.isTTY;
|
||||
process.stdout.isTTY = !!options.stdoutIsTTY;
|
||||
process.argv = ["path/to/node", "path/to/prettier/bin"].concat(args);
|
||||
|
||||
jest.resetModules();
|
||||
|
@ -79,6 +81,7 @@ function runPrettier(dir, args, options) {
|
|||
process.argv = originalArgv;
|
||||
process.exitCode = originalExitCode;
|
||||
process.stdin.isTTY = originalStdinIsTTY;
|
||||
process.stdout.isTTY = originalStdoutIsTTY;
|
||||
jest.restoreAllMocks();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue