浏览代码

Revert "removed StdoutWriteMock"

This reverts commit f6178267bb7ccddc75c3c71631547a2950a43bd0.
sanex3339 8 年之前
父节点
当前提交
9542c85fff
共有 2 个文件被更改,包括 39 次插入1 次删除
  1. 13 1
      test/functional-tests/JavaScriptObfuscatorCLI.spec.ts
  2. 26 0
      test/mocks/StdoutWriteMock.ts

+ 13 - 1
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);
             });
 

+ 26 - 0
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;
+    }
+}