From 599429ddfc328b8fd4850f3812b0f5a3cd541a0a Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Tue, 28 Jun 2016 00:21:34 +0300 Subject: [PATCH] CLI tests refactoring --- dist/index.js | 1 - src/cli/JavaScriptObfuscatorCLI.ts | 2 -- test/JavaScriptObfuscatorCLI.spec.ts | 48 ++++++++++++++++++++++++---- 3 files changed, 41 insertions(+), 10 deletions(-) diff --git a/dist/index.js b/dist/index.js index 7a5146d4..9a2abc96 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1084,7 +1084,6 @@ var JavaScriptObfuscatorCLI = function () { this.configureCommands(); if (!this.arguments.length || this.arguments.indexOf('--help') >= 0) { this.commands.outputHelp(); - return; } this.inputPath = this.getInputPath(); this.getData(); diff --git a/src/cli/JavaScriptObfuscatorCLI.ts b/src/cli/JavaScriptObfuscatorCLI.ts index 16f651d0..278616b1 100644 --- a/src/cli/JavaScriptObfuscatorCLI.ts +++ b/src/cli/JavaScriptObfuscatorCLI.ts @@ -94,8 +94,6 @@ export class JavaScriptObfuscatorCLI { if (!this.arguments.length || this.arguments.indexOf('--help') >= 0) { this.commands.outputHelp(); - - return; } this.inputPath = this.getInputPath(); diff --git a/test/JavaScriptObfuscatorCLI.spec.ts b/test/JavaScriptObfuscatorCLI.spec.ts index ffb9506d..f70211fd 100644 --- a/test/JavaScriptObfuscatorCLI.spec.ts +++ b/test/JavaScriptObfuscatorCLI.spec.ts @@ -1,4 +1,5 @@ import * as fs from 'fs'; +import * as mkdirp from 'mkdirp'; import { JavaScriptObfuscator } from "../src/JavaScriptObfuscator"; @@ -6,14 +7,17 @@ const assert: Chai.AssertStatic = require('chai').assert; describe('JavaScriptObfuscatorCLI', () => { let fixturesDirName: string = 'test/fixtures', - tmpDirName: string = 'test/tmp', fixtureFileName: string = 'sample.js', fixtureFilePath: string = `${fixturesDirName}/${fixtureFileName}`, + outputDirName: string = 'test/tmp', outputFileName: string = 'sample-obfuscated.js', - outputFixturesFilePath: string = `${fixturesDirName}/${outputFileName}`, - outputFilePath: string = `${tmpDirName}/${outputFileName}`; + outputFilePath: string = `${outputDirName}/${outputFileName}`; describe('run (): void', () => { + before(() => { + mkdirp.sync(outputDirName); + }); + describe('--output option is set', () => { it('should creates file with obfuscated JS code in --output directory', () => { JavaScriptObfuscator.runCLI([ @@ -21,7 +25,11 @@ describe('JavaScriptObfuscatorCLI', () => { 'javascript-obfuscator', fixtureFilePath, '--output', - outputFilePath + outputFilePath, + '--compact', + 'true', + '--selfDefending', + '0' ]); assert.equal(fs.existsSync(outputFilePath), true); @@ -29,12 +37,13 @@ describe('JavaScriptObfuscatorCLI', () => { afterEach(() => { fs.unlinkSync(outputFilePath); - fs.rmdirSync(tmpDirName); }); }); describe('—output option is not set', () => { it(`should creates file called \`${outputFileName}\` with obfuscated JS code in \`${fixturesDirName}\` directory`, () => { + let outputFixturesFilePath: string = `${fixturesDirName}/${outputFileName}`; + JavaScriptObfuscator.runCLI([ 'node', 'javascript-obfuscator', @@ -42,11 +51,36 @@ describe('JavaScriptObfuscatorCLI', () => { ]); assert.equal(fs.existsSync(outputFixturesFilePath), true); - }); - afterEach(() => { fs.unlinkSync(outputFixturesFilePath); }); + + it(`should throw an error if input path is not a valid file path`, () => { + assert.throws(() => JavaScriptObfuscator.runCLI([ + 'node', + 'javascript-obfuscator', + 'wrong/file/path' + ]), ReferenceError); + }); + + it(`should throw an error if input file extension is not a .js extension`, () => { + let outputWrongExtensionFileName: string = 'sample-obfuscated.ts', + outputWrongExtensionFilePath: string = `${outputDirName}/${outputWrongExtensionFileName}`; + + fs.writeFileSync(outputWrongExtensionFilePath, 'data'); + + assert.throws(() => JavaScriptObfuscator.runCLI([ + 'node', + 'javascript-obfuscator', + outputWrongExtensionFilePath + ]), ReferenceError); + + fs.unlinkSync(outputWrongExtensionFilePath); + }); + }); + + after(() => { + fs.rmdirSync(outputDirName); }); }); });