diff options
author | Richard Lau <riclau@uk.ibm.com> | 2019-11-02 03:48:47 -0400 |
---|---|---|
committer | Richard Lau <riclau@uk.ibm.com> | 2019-11-05 22:10:33 -0500 |
commit | 3b124e0a7342ebbeb09a922586f8291d88cadc0e (patch) | |
tree | b3d9609b2fc881ffc3cd28f93957bbadd90ebf09 /test/doctool | |
parent | f734ba9d6f0feb785c9154ddb99ae4cd3a7bc77f (diff) | |
download | android-node-v8-3b124e0a7342ebbeb09a922586f8291d88cadc0e.tar.gz android-node-v8-3b124e0a7342ebbeb09a922586f8291d88cadc0e.tar.bz2 android-node-v8-3b124e0a7342ebbeb09a922586f8291d88cadc0e.zip |
tools: make doctool work if no internet available
Allow doctool to fallback to use local files if not building a release
build.
PR-URL: https://github.com/nodejs/node/pull/30214
Fixes: https://github.com/nodejs/node/issues/29918
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Diffstat (limited to 'test/doctool')
-rw-r--r-- | test/doctool/test-doctool-versions.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/test/doctool/test-doctool-versions.js b/test/doctool/test-doctool-versions.js new file mode 100644 index 0000000000..8bb4f81c79 --- /dev/null +++ b/test/doctool/test-doctool-versions.js @@ -0,0 +1,59 @@ +'use strict'; + +require('../common'); +const assert = require('assert'); +const util = require('util'); +const { versions } = require('../../tools/doc/versions.js'); + +// At the time of writing these are the minimum expected versions. +// New versions of Node.js do not have to be explicitly added here. +const expected = [ + '12.x', + '11.x', + '10.x', + '9.x', + '8.x', + '7.x', + '6.x', + '5.x', + '4.x', + '0.12.x', + '0.10.x', +]; + +async function test() { + const vers = await versions(); + // Coherence checks for each returned version. + for (const version of vers) { + const tested = util.inspect(version); + const parts = version.num.split('.'); + const expectedLength = parts[0] === '0' ? 3 : 2; + assert.strictEqual(parts.length, expectedLength, + `'num' from ${tested} should be '<major>.x'.`); + assert.strictEqual(parts[parts.length - 1], 'x', + `'num' from ${tested} doesn't end in '.x'.`); + const isEvenRelease = Number.parseInt(parts[expectedLength - 2]) % 2 === 0; + const hasLtsProperty = version.hasOwnProperty('lts'); + if (hasLtsProperty) { + // Odd-numbered versions of Node.js are never LTS. + assert.ok(isEvenRelease, `${tested} should not be an 'lts' release.`); + assert.ok(version.lts, `'lts' from ${tested} should 'true'.`); + } + } + + // Check that the minimum number of versions were returned. + // Later versions are allowed, but not checked for here (they were checked + // above). + // Also check for the previous semver major -- From master this will be the + // most recent major release. + const thisMajor = Number.parseInt(process.versions.node.split('.')[0]); + const prevMajorString = `${thisMajor - 1}.x`; + if (!expected.includes(prevMajorString)) { + expected.unshift(prevMajorString); + } + for (const version of expected) { + assert.ok(vers.find((x) => x.num === version), + `Did not find entry for '${version}' in ${util.inspect(vers)}`); + } +} +test(); |