diff --git a/bin/cli.js b/bin/cli.js index 37bd96a..c8c9edc 100755 --- a/bin/cli.js +++ b/bin/cli.js @@ -7,4 +7,9 @@ const getModuleType = require('../index.js'); const filename = process.argv[2]; +if (!filename) { + console.error('Usage: module-definition '); + process.exit(1); +} + console.log(getModuleType.sync(filename)); diff --git a/test/test.js b/test/test.js index d20fd7f..ba20aa4 100644 --- a/test/test.js +++ b/test/test.js @@ -3,8 +3,10 @@ 'use strict'; const assert = require('assert').strict; +const childProcess = require('child_process'); const fs = require('fs'); const path = require('path'); +const process = require('process'); const memfs = require('memfs'); const unionfs = require('unionfs'); const getModuleType = require('../index.js'); @@ -142,4 +144,16 @@ describe('module-definition', () => { assert.equal(getModuleType.fromSource('require.main.require();'), 'commonjs'); }); }); + + describe('CLI tests', () => { + it('should print usage and exit when filename is missing', () => { + const cliPath = path.resolve(__dirname, '..', 'bin', 'cli.js'); + const result = childProcess.spawnSync(process.execPath, [cliPath], { + encoding: 'utf8' + }); + + assert.equal(result.status, 1); + assert.match(result.stderr, /Usage: module-definition /); + }); + }); });