/
testUtils.js
56 lines (48 loc) · 1.51 KB
/
testUtils.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//Requires
const fs = require('fs');
const { dir, log, logOk, logWarn, logError, cleanTerminal } = require('./console');
const context = 'TestUtils';
//================================================================
/**
* Check if running on NodeJS v10 LTS
*/
function nodeVersionChecker(){
if(!process.version.startsWith('v10.')){
cleanTerminal();
logError(`FATAL ERROR: txAdmin doesn't support NodeJS ${process.version}, please install NodeJS v10 LTS!`, 'NodeVersionChecker');
process.exit();
}
}
//================================================================
/**
* Check if the packages in package.json were installed
*/
function moduleInstallChecker() {
let errorOut;
try {
let rawFile = fs.readFileSync('package.json');
let parsedFile = JSON.parse(rawFile);
let packages = Object.keys(parsedFile.dependencies)
let missing = [];
packages.forEach(package => {
try {
require.resolve(package);
} catch (error) {
missing.push(package);
}
});
if(missing.length){
errorOut = `Make sure you executed 'npm i'. The following packages are missing:\n` + missing.join(', ');
}
} catch (error) {
errorOut = `Error reading or parsing package.json: ${error.message}`;
}
if(errorOut){
logError(errorOut, 'PackageChecker');
process.exit();
}
}
module.exports = {
nodeVersionChecker,
moduleInstallChecker,
}