1 | import commander from 'commander'
|
2 | import Web3 from 'web3';
|
3 | import { runTestFiles } from './runTestFiles'
|
4 | import fs from './fileSystem'
|
5 | import { Provider } from 'remix-simulator'
|
6 | import Log from './logger'
|
7 | const logger = new Log()
|
8 | const log = logger.logger
|
9 | import colors from 'colors'
|
10 |
|
11 |
|
12 | function mapVerbosity (v: number) {
|
13 | const levels = {
|
14 | 0: 'error',
|
15 | 1: 'warn',
|
16 | 2: 'info',
|
17 | 3: 'verbose',
|
18 | 4: 'debug',
|
19 | 5: 'silly'
|
20 | }
|
21 | return levels[v]
|
22 | }
|
23 | const version = require('../package.json').version
|
24 |
|
25 | commander.version(version)
|
26 |
|
27 | commander.command('version').description('output the version number').action(function () {
|
28 | console.log(version)
|
29 | })
|
30 |
|
31 | commander.command('help').description('output usage information').action(function () {
|
32 | commander.help()
|
33 | })
|
34 |
|
35 |
|
36 | commander
|
37 | .option('-v, --verbose <level>', 'run with verbosity', mapVerbosity)
|
38 | .action(async (filename) => {
|
39 | if(!filename.endsWith('_test.sol')){
|
40 | log.error('Test filename should end with "_test.sol"')
|
41 | process.exit()
|
42 | }
|
43 |
|
44 | console.log(colors.white('\n\tš\t:: Running remix-tests - Unit testing for solidity ::\tš\n'))
|
45 |
|
46 | if (commander.verbose) {
|
47 | logger.setVerbosity(commander.verbose)
|
48 | log.info('verbosity level set to ' + commander.verbose.blue)
|
49 | }
|
50 | let web3 = new Web3()
|
51 | const provider = new Provider()
|
52 | await provider.init()
|
53 | web3.setProvider(provider)
|
54 |
|
55 | if (!fs.existsSync(filename)) {
|
56 | console.error(filename + ' not found')
|
57 | process.exit(1)
|
58 | }
|
59 |
|
60 | let isDirectory = fs.lstatSync(filename).isDirectory()
|
61 | runTestFiles(filename, isDirectory, web3)
|
62 | })
|
63 |
|
64 | if (!process.argv.slice(2).length) {
|
65 | log.error('Please specify a filename')
|
66 | process.exit()
|
67 | }
|
68 |
|
69 | commander.parse(process.argv)
|