CLI tests refactoring

This commit is contained in:
sanex3339
2016-06-28 00:21:34 +03:00
parent ef5c2c6de3
commit 599429ddfc
3 changed files with 41 additions and 10 deletions
-1
View File
@@ -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();
-2
View File
@@ -94,8 +94,6 @@ export class JavaScriptObfuscatorCLI {
if (!this.arguments.length || this.arguments.indexOf('--help') >= 0) {
this.commands.outputHelp();
return;
}
this.inputPath = this.getInputPath();
+41 -7
View File
@@ -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);
});
});
});