From 996d1cbb4f2e0bca4b2822b0bcb6bfe11402ea1d Mon Sep 17 00:00:00 2001 From: Georgii Dolzhykov Date: Mon, 23 Mar 2020 03:32:05 +0200 Subject: [PATCH] Add please-upgrade-node (#7837) --- package.json | 1 + src/cli/index.js | 2 ++ .../__tests__/__snapshots__/early-exit.js.snap | 9 +++++++++ tests_integration/__tests__/early-exit.js | 16 ++++++++++++++++ yarn.lock | 12 ++++++++++++ 5 files changed, 40 insertions(+) diff --git a/package.json b/package.json index 2f8639568..c07302691 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "minimatch": "3.0.4", "minimist": "1.2.5", "n-readlines": "1.0.0", + "please-upgrade-node": "3.2.0", "postcss-less": "3.1.4", "postcss-media-query-parser": "0.2.3", "postcss-scss": "2.0.0", diff --git a/src/cli/index.js b/src/cli/index.js index ed5871def..bba6368a3 100644 --- a/src/cli/index.js +++ b/src/cli/index.js @@ -1,5 +1,7 @@ "use strict"; +require("please-upgrade-node")(require("../../package.json")); + const prettier = require("../../index"); const stringify = require("json-stable-stringify"); const util = require("./util"); diff --git a/tests_integration/__tests__/__snapshots__/early-exit.js.snap b/tests_integration/__tests__/__snapshots__/early-exit.js.snap index 0ab7ba014..fca642abe 100644 --- a/tests_integration/__tests__/__snapshots__/early-exit.js.snap +++ b/tests_integration/__tests__/__snapshots__/early-exit.js.snap @@ -1,5 +1,14 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`node version error (stderr) 1`] = ` +"prettier requires at least version 10.13.0 of Node, please upgrade +" +`; + +exports[`node version error (stdout) 1`] = `""`; + +exports[`node version error (write) 1`] = `Array []`; + exports[`show detailed usage with --help l (alias) (stderr) 1`] = `""`; exports[`show detailed usage with --help l (alias) (stdout) 1`] = ` diff --git a/tests_integration/__tests__/early-exit.js b/tests_integration/__tests__/early-exit.js index fa8ea94b2..0e1372fa0 100644 --- a/tests_integration/__tests__/early-exit.js +++ b/tests_integration/__tests__/early-exit.js @@ -85,3 +85,19 @@ describe("throw error and show usage with something unexpected", () => { status: "non-zero", }); }); + +describe("node version error", () => { + const originalProcessVersion = process.version; + try { + Object.defineProperty(process, "version", { + value: "v8.0.0", + writable: false, + }); + runPrettier("cli", ["--help"]).test({ status: 1 }); + } finally { + Object.defineProperty(process, "version", { + value: originalProcessVersion, + writable: false, + }); + } +}); diff --git a/yarn.lock b/yarn.lock index 9b7fa748a..b0c132bf5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6080,6 +6080,13 @@ platform@^1.3.3: resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.5.tgz#fb6958c696e07e2918d2eeda0f0bc9448d733444" integrity sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q== +please-upgrade-node@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" @@ -6832,6 +6839,11 @@ schema-utils@^2.6.4, schema-utils@^2.6.5: ajv "^6.12.0" ajv-keywords "^3.4.1" +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + "semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"