From 9542c85fff2b3bcffd8241f66886a4d76e6ca112 Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Tue, 26 Jul 2016 08:37:05 +0300 Subject: [PATCH] Revert "removed StdoutWriteMock" This reverts commit f6178267bb7ccddc75c3c71631547a2950a43bd0. --- .../JavaScriptObfuscatorCLI.spec.ts | 14 +++++++++- test/mocks/StdoutWriteMock.ts | 26 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 test/mocks/StdoutWriteMock.ts diff --git a/test/functional-tests/JavaScriptObfuscatorCLI.spec.ts b/test/functional-tests/JavaScriptObfuscatorCLI.spec.ts index 26059bc8..094df58b 100644 --- a/test/functional-tests/JavaScriptObfuscatorCLI.spec.ts +++ b/test/functional-tests/JavaScriptObfuscatorCLI.spec.ts @@ -2,6 +2,8 @@ import * as fs from 'fs'; import * as mkdirp from 'mkdirp'; import * as sinon from 'sinon'; +import { StdoutWriteMock } from "../mocks/StdoutWriteMock"; + import { JavaScriptObfuscator } from "../../src/JavaScriptObfuscator"; const assert: Chai.AssertStatic = require('chai').assert; @@ -117,13 +119,17 @@ describe('JavaScriptObfuscatorCLI', function (): void { }); describe('help output', () => { - let callback: sinon.SinonSpy; + let callback: sinon.SinonSpy, + stdoutWriteMock: StdoutWriteMock; beforeEach(() => { callback = sinon.spy(console, 'log'); + stdoutWriteMock = new StdoutWriteMock(process.stdout.write); }); it('should print `console.log` help if `--help` option is set', () => { + stdoutWriteMock.mute(); + JavaScriptObfuscator.runCLI([ 'node', 'javascript-obfuscator', @@ -131,15 +137,21 @@ describe('JavaScriptObfuscatorCLI', function (): void { '--help' ]); + stdoutWriteMock.restore(); + assert.equal(callback.called, true); }); it('should print `console.log` help if no options is passed', () => { + stdoutWriteMock.mute(); + JavaScriptObfuscator.runCLI([ 'node', 'javascript-obfuscator' ]); + stdoutWriteMock.restore(); + assert.equal(callback.called, true); }); diff --git a/test/mocks/StdoutWriteMock.ts b/test/mocks/StdoutWriteMock.ts new file mode 100644 index 00000000..c7881795 --- /dev/null +++ b/test/mocks/StdoutWriteMock.ts @@ -0,0 +1,26 @@ +export class StdoutWriteMock { + /** + * @type any + */ + private stdoutWrite: any; + + /** + * @type any + */ + private stdoutWriteMock: any = (() => {}); + + /** + * @param stdoutWrite + */ + constructor (stdoutWrite: any) { + this.stdoutWrite = stdoutWrite; + } + + public mute (): void { + process.stdout.write = this.stdoutWriteMock; + } + + public restore (): void { + process.stdout.write = this.stdoutWrite; + } +}