diff --git a/.travis.yml b/.travis.yml index fbf87e6d..952454d7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ before_script: - psql -c "CREATE USER test WITH PASSWORD 'test';" -U postgres script: - npm run test-integration -# - npm run test-cover-unit + - npm run test-cover-unit #cache: # directories: # - node_modules diff --git a/package.json b/package.json index 1001707a..9d356ffa 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,6 @@ "nyc": "^11.5.0", "proxyquire": "^2.0.0", "reflect-metadata": "^0.1.10", - "rewire": "^3.0.2", "shx": "^0.2.2", "sinon": "=4.4.2", "supertest": "=3.0.0", diff --git a/tests/unit/AppManager.spec.ts b/tests/unit/AppManager.spec.ts index fe8deaf5..5bcbf592 100644 --- a/tests/unit/AppManager.spec.ts +++ b/tests/unit/AppManager.spec.ts @@ -1,13 +1,14 @@ import * as chai from 'chai'; import * as fs from 'fs'; +import * as http from 'http'; import { Container } from 'inversify'; import * as path from 'path'; -import * as rewire from 'rewire'; +import * as proxyquire from 'proxyquire'; import * as sinon from 'sinon'; import { SinonSandbox, SinonSpy, SinonStub } from 'sinon'; import { allControllers, APIErrorHandler } from '../../src/apis'; import { AppManager } from '../../src/AppManager'; -import { ExceptionsManager } from '../../src/helpers'; +import { Bus, cache, Database, Ed, ExceptionsManager, JobsQueue, Sequence, Slots, z_schema } from '../../src/helpers'; import constants from '../../src/helpers/constants'; import { Symbols } from '../../src/ioc/symbols'; import { SignedAndChainedBlockType } from '../../src/logic'; @@ -19,8 +20,45 @@ import { LoaderModuleStub } from '../stubs/modules/LoaderModuleStub'; import { ContainerStub } from '../stubs/utils/ContainerStub'; import { createContainer } from '../utils/containerCreator'; -const { expect } = chai; -const RewiredAppManager = rewire('../../src/AppManager'); +const { expect } = chai; + +const fakeMiddleware = {} as any; +const fakeBodyParser = { raw: undefined, urlencoded: undefined, json: undefined } as any; +let expressStub: SinonStub; +let applyExpressLimitsStub: SinonStub; +let compressionStub: SinonStub; +let corsStub: SinonStub; +let useContainerForHTTPStub: SinonStub; +let useExpressServerStub: SinonStub; +let socketIOStub: SinonStub; +let cbToPromiseStub: SinonStub; +let catchToLoggerAndRemapErrorStub: SinonStub; + +function expressRunner(...args) { + return expressStub.apply(this, args); +} + +const ProxyAppManager = proxyquire('../../src/AppManager', { + 'express': expressRunner, + './helpers/': { + applyExpressLimits : (...args) => applyExpressLimitsStub.apply(this, args), + Bus, cache, + catchToLoggerAndRemapError: (...args) => catchToLoggerAndRemapErrorStub.apply(this, args), + cbToPromise : (...args) => cbToPromiseStub.apply(this, args), + constants, Database, Ed, ExceptionsManager, JobsQueue, + middleware: fakeMiddleware, + Sequence, Slots, z_schema, + }, + 'compression' : (...args) => compressionStub.apply(this, args), + 'cors' : (...args) => corsStub.apply(this, args), + 'body-parser' : fakeBodyParser, + 'reflect-metadata' : Reflect, + 'routing-controllers': { + useContainer : (...args) => useContainerForHTTPStub.apply(this, args), + useExpressServer: (...args) => useExpressServerStub.apply(this, args), + }, + 'socket.io' : (...args) => socketIOStub.apply(this, args), +}); // tslint:disable no-unused-expression describe('AppManager', () => { @@ -57,7 +95,7 @@ describe('AppManager', () => { describe('constructor', () => { it('should set appConfig.nethash to genesisBlock.payloadHash', () => { - instance = new RewiredAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); + instance = new ProxyAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); expect(appConfig.nethash).to.be.deep.equal(genesisBlock.payloadHash); }); }); @@ -68,7 +106,7 @@ describe('AppManager', () => { let finishBootStub: SinonStub; beforeEach(() => { - instance = new RewiredAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); + instance = new ProxyAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); initAppElementsStub = sandbox.stub(instance, 'initAppElements').resolves(); initExpressStub = sandbox.stub(instance, 'initExpress').resolves(); finishBootStub = sandbox.stub(instance, 'finishBoot'); @@ -105,7 +143,7 @@ describe('AppManager', () => { let fakeModules; beforeEach(() => { - instance = new RewiredAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); + instance = new ProxyAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); instance.container = allStubsContainer; (instance as any).isCleaning = false; @@ -166,81 +204,39 @@ describe('AppManager', () => { }); describe('initExpress', () => { - let expressStub: any; let fakeApp: { use: SinonStub, options: SinonStub }; - let fakeBodyParser: { raw: SinonStub, urlencoded: SinonStub, json: SinonStub }; - let fakeMiddleware: - { logClientConnections: SinonStub, attachResponseHeader: SinonStub, applyAPIAccessRules: SinonStub }; - let applyExpressLimitsStub: SinonStub; - let compressionStub: SinonStub; - let corsStub: SinonStub; - let useContainerForHTTPStub: SinonStub; - let useExpressServerStub: SinonStub; let getMetadataSpy: SinonSpy; - let toRestore; - - before(() => { - toRestore = { - 'express' : RewiredAppManager.__get__('express'), - '_1.applyExpressLimits' : RewiredAppManager.__get__('_1.applyExpressLimits'), - 'compression' : RewiredAppManager.__get__('compression'), - 'cors' : RewiredAppManager.__get__('cors'), - 'bodyParser' : RewiredAppManager.__get__('bodyParser'), - '_1.middleware' : RewiredAppManager.__get__('_1.middleware'), - 'Reflect.getMetadata' : RewiredAppManager.__get__('Reflect.getMetadata'), - 'routing_controllers_1.useContainer' : RewiredAppManager.__get__('routing_controllers_1.useContainer'), - 'routing_controllers_1.useExpressServer': RewiredAppManager.__get__('routing_controllers_1.useExpressServer'), - }; - }); - beforeEach(() => { - fakeApp = { + fakeApp = { use : sandbox.stub(), options: sandbox.stub(), }; - expressStub = { static: sandbox.stub().returns('static') }; - fakeBodyParser = { - raw : sandbox.stub().returns('raw'), - urlencoded: sandbox.stub().returns('urlencoded'), - json : sandbox.stub().returns('json'), - }; - fakeMiddleware = { - logClientConnections: sandbox.stub().returns('logClientConnections'), - attachResponseHeader: sandbox.stub().returns('attachResponseHeader'), - applyAPIAccessRules : sandbox.stub().returns('applyAPIAccessRules'), - }; + (expressRunner as any).static = sandbox.stub().returns('static'); + + (fakeBodyParser as any).raw = sandbox.stub().returns('raw'); + (fakeBodyParser as any).urlencoded = sandbox.stub().returns('urlencoded'); + (fakeBodyParser as any).json = sandbox.stub().returns('json'); + + fakeMiddleware.logClientConnections = sandbox.stub().returns('logClientConnections'); + fakeMiddleware.attachResponseHeader = sandbox.stub().returns('attachResponseHeader'); + fakeMiddleware.applyAPIAccessRules = sandbox.stub().returns('applyAPIAccessRules'); applyExpressLimitsStub = sandbox.stub(); compressionStub = sandbox.stub().returns('compression'); corsStub = sandbox.stub().returns('cors'); useContainerForHTTPStub = sandbox.stub(); useExpressServerStub = sandbox.stub(); - getMetadataSpy = sandbox.spy(RewiredAppManager.__get__('Reflect'), 'getMetadata'); - - RewiredAppManager.__set__('express', expressStub); - RewiredAppManager.__set__('_1.applyExpressLimits', applyExpressLimitsStub); - RewiredAppManager.__set__('compression', compressionStub); - RewiredAppManager.__set__('cors', corsStub); - RewiredAppManager.__set__('bodyParser', fakeBodyParser); - RewiredAppManager.__set__('_1.middleware', fakeMiddleware); - RewiredAppManager.__set__('routing_controllers_1.useContainer', useContainerForHTTPStub); - RewiredAppManager.__set__('routing_controllers_1.useExpressServer', useExpressServerStub); + getMetadataSpy = sandbox.spy(Reflect, 'getMetadata'); containerStub = new ContainerStub(sandbox); containerStub.get.callsFake((s) => (s === Symbols.generic.expressApp) ? fakeApp : s.toString()); - instance = new RewiredAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); + instance = new ProxyAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); (instance as any).container = containerStub; }); - after(() => { - Object.keys(toRestore).forEach((key) => { - RewiredAppManager.__set__(key, toRestore[key]); - }); - }); - it('should get express from container', async () => { await instance.initExpress(); expect(containerStub.get.calledOnce).to.be.true; @@ -275,8 +271,8 @@ describe('AppManager', () => { it('should use static middleware for ../public', async () => { await instance.initExpress(); - expect(expressStub.static.calledOnce).to.be.true; - expect(expressStub.static.firstCall.args[0]).to.match(/\.\.\/public$/); + expect((expressRunner as any).static.calledOnce).to.be.true; + expect((expressRunner as any).static.firstCall.args[0]).to.match(/\.\.\/public$/); expect(fakeApp.use.getCall(2).args[0]).to.be.equal('static'); }); @@ -385,51 +381,19 @@ describe('AppManager', () => { }); describe('initAppElements', () => { - let expressStub: SinonStub; - let createServerStub: SinonStub; - let socketIOStub: SinonStub; let databaseConnectStub: SinonStub; let cacheConnectStub: SinonStub; - let sequenceSpy: SinonSpy; - let edSpy: SinonSpy; - let busSpy: SinonSpy; + let createServerStub: SinonStub; let getMetadataSpy: SinonSpy; let excCreators: any[]; - let toRestore; - - before(() => { - toRestore = { - 'express' : RewiredAppManager.__get__('express'), - 'http.createServer' : RewiredAppManager.__get__('http.createServer'), - 'socketIO' : RewiredAppManager.__get__('socketIO'), - '_1.Database.connect': RewiredAppManager.__get__('_1.Database.connect'), - '_1.cache.connect' : RewiredAppManager.__get__('_1.cache.connect'), - '_1.Sequence' : RewiredAppManager.__get__('_1.Sequence'), - '_1.Ed' : RewiredAppManager.__get__('_1.Ed'), - '_1.Bus' : RewiredAppManager.__get__('_1.Bus'), - 'Reflect.getMetadata': RewiredAppManager.__get__('Reflect.getMetadata'), - }; - }); beforeEach(() => { expressStub = sandbox.stub().returns('expressApp'); - createServerStub = sandbox.stub().returns('server'); + createServerStub = sandbox.stub(http, 'createServer').returns('server'); socketIOStub = sandbox.stub().returns('socketIO'); - databaseConnectStub = sandbox.stub().resolves('db'); - cacheConnectStub = sandbox.stub().resolves({ client: 'theClient' }); - sequenceSpy = sandbox.spy(toRestore['_1.Sequence']); - edSpy = sandbox.spy(toRestore['_1.Ed']); - busSpy = sandbox.spy(toRestore['_1.Bus']); - getMetadataSpy = sandbox.spy(RewiredAppManager.__get__('Reflect'), 'getMetadata'); - - RewiredAppManager.__set__('express', expressStub); - RewiredAppManager.__set__('http.createServer', createServerStub); - RewiredAppManager.__set__('socketIO', socketIOStub); - RewiredAppManager.__set__('_1.Database.connect', databaseConnectStub); - RewiredAppManager.__set__('_1.cache.connect', cacheConnectStub); - RewiredAppManager.__set__('_1.Sequence', sequenceSpy); - RewiredAppManager.__set__('_1.Ed', edSpy); - RewiredAppManager.__set__('_1.Bus', busSpy); + databaseConnectStub = sandbox.stub(Database, 'connect').resolves('db'); + cacheConnectStub = sandbox.stub(cache, 'connect').resolves({ client: 'theClient' }); + getMetadataSpy = sandbox.spy(Reflect, 'getMetadata'); containerStub = new ContainerStub(sandbox); containerStub.get.callsFake((s) => allStubsContainer.get(s)); @@ -439,17 +403,11 @@ describe('AppManager', () => { sandbox.stub(), ]; - instance = new RewiredAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, excCreators); + instance = new ProxyAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, excCreators); (instance as any).container = containerStub; }); - after(() => { - Object.keys(toRestore).forEach((key) => { - RewiredAppManager.__set__(key, toRestore[key]); - }); - }); - it('should call express and set this.expressApp', async () => { await instance.initAppElements(); expect(expressStub.calledOnce).to.be.true; @@ -490,18 +448,6 @@ describe('AppManager', () => { expect(cacheConnectStub.firstCall.args[2]).to.be.deep.equal(loggerStub); }); - it('should instantiate Ed', async () => { - await instance.initAppElements(); - expect(edSpy.calledOnce).to.be.true; - expect(edSpy.firstCall.args.length).to.be.equal(0); - }); - - it('should instantiate Bus', async () => { - await instance.initAppElements(); - expect(busSpy.calledOnce).to.be.true; - expect(busSpy.firstCall.args.length).to.be.equal(0); - }); - it('should call Reflect.getMetadata for each API controller', async () => { await instance.initAppElements(); expect(getMetadataSpy.callCount).to.be.equal(allControllers.length); @@ -664,7 +610,6 @@ describe('AppManager', () => { it('should create 3 Sequences to bind in container for helpers.sequence based on the tag', async () => { await instance.initAppElements(); - expect(sequenceSpy.calledThrice).to.be.true; expect(Array.isArray(containerStub.bindings[Symbols.helpers.sequence])).to.be.true; expect(containerStub.bindings[Symbols.helpers.sequence].length).to.be.equal(3); const seqSymbols = [ @@ -676,11 +621,6 @@ describe('AppManager', () => { expect(containerStub.bindings[Symbols.helpers.sequence][index].toConstantValue).to.not.be.undefined; const sequence = containerStub.bindings[Symbols.helpers.sequence][index].toConstantValue; expect(sequence.constructor.name).to.be.equal('Sequence'); - expect(sequenceSpy.getCall(index).args[0].onWarning).to.not.be.undefined; - sequenceSpy.getCall(index).args[0].onWarning(`current_${index}`); - expect(loggerStub.stubs.warn.callCount).to.be.equal(index + 1); - expect(loggerStub.stubs.warn.getCall(index).args[0]).to.be.equal(`${sequenceTag.toString()} queue`); - expect(loggerStub.stubs.warn.getCall(index).args[1]).to.be.equal(`current_${index}`); expect(containerStub.bindings[Symbols.helpers.sequence][index].whenTargetTagged).to.not.be.undefined; expect(containerStub.bindings[Symbols.helpers.sequence][index].whenTargetTagged).to.be.deep .equal([Symbols.helpers.sequence, sequenceTag]); @@ -970,22 +910,12 @@ describe('AppManager', () => { }); describe('finishBoot', () => { - let cbToPromiseStub: SinonStub; - let catchToLoggerAndRemapErrorStub: SinonStub; let listenStub: SinonStub; let getModulesSpy: SinonSpy; let busStub: BusStub; let transactionLogicStub: TransactionLogicStub; let blocksSubmoduleChainStub: BlocksSubmoduleChainStub; let loaderModuleStub: LoaderModuleStub; - let toRestore; - - before(() => { - toRestore = { - '_1.cbToPromise' : RewiredAppManager.__get__('_1.cbToPromise'), - '_1.catchToLoggerAndRemapError': RewiredAppManager.__get__('_1.catchToLoggerAndRemapError'), - }; - }); beforeEach(() => { cbToPromiseStub = sandbox.stub().callsFake((fn) => { @@ -999,10 +929,7 @@ describe('AppManager', () => { loaderModuleStub = allStubsContainer.get(Symbols.modules.loader); listenStub = sandbox.stub(); - RewiredAppManager.__set__('_1.cbToPromise', cbToPromiseStub); - RewiredAppManager.__set__('_1.catchToLoggerAndRemapError', catchToLoggerAndRemapErrorStub); - - instance = new RewiredAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); + instance = new ProxyAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); getModulesSpy = sandbox.spy(instance as any, 'getModules'); containerStub = new ContainerStub(sandbox); @@ -1034,12 +961,6 @@ describe('AppManager', () => { }); }); - after(() => { - Object.keys(toRestore).forEach((key) => { - RewiredAppManager.__set__(key, toRestore[key]); - }); - }); - it('should call container.get for helpers.bus', async () => { await instance.finishBoot(); expect(containerStub.get.called).to.be.true; @@ -1155,7 +1076,7 @@ describe('AppManager', () => { }; beforeEach(() => { - instance = new RewiredAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); + instance = new ProxyAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); containerStub = new ContainerStub(sandbox); containerStub.get.callsFake((s) => s.toString()); (instance as any).container = containerStub; @@ -1179,7 +1100,7 @@ describe('AppManager', () => { describe('getModules', () => { let getElementsFromContainerStub: SinonStub; beforeEach(() => { - instance = new RewiredAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); + instance = new ProxyAppManager.AppManager(appConfig, loggerStub, '1.0', genesisBlock, constants, []); containerStub = new ContainerStub(sandbox); (instance as any).container = containerStub; diff --git a/tests/unit/apis/accountsAPI.spec.ts b/tests/unit/apis/accountsAPI.spec.ts index 24bdf589..b7227334 100644 --- a/tests/unit/apis/accountsAPI.spec.ts +++ b/tests/unit/apis/accountsAPI.spec.ts @@ -2,7 +2,7 @@ import * as chai from 'chai'; import { expect } from 'chai'; import * as chaiAsPromised from 'chai-as-promised'; import { Container } from 'inversify'; -import * as rewire from 'rewire'; +import * as proxyquire from 'proxyquire'; import { SinonSandbox, SinonStub } from 'sinon'; import * as sinon from 'sinon'; import { AccountsAPI } from '../../../src/apis/accountsAPI'; @@ -15,10 +15,12 @@ import { createContainer } from '../../utils/containerCreator'; chai.use(chaiAsPromised); -// tslint:disable no-unused-expression max-line-length - -const AccountsAPIRewire = rewire('../../../src/apis/accountsAPI'); +let isEmptyStub: SinonStub; +const ProxyAccountsAPI = proxyquire('../../../src/apis/accountsAPI', { + 'is-empty': (...args) => isEmptyStub.apply(this, args), +}); +// tslint:disable no-unused-expression max-line-length describe('apis/accountsAPI', () => { let sandbox: SinonSandbox; @@ -32,7 +34,7 @@ describe('apis/accountsAPI', () => { beforeEach(() => { sandbox = sinon.sandbox.create(); container = createContainer(); - container.bind(Symbols.api.accounts).to(AccountsAPIRewire.AccountsAPI); + container.bind(Symbols.api.accounts).to(ProxyAccountsAPI.AccountsAPI); schema = container.get(Symbols.generic.zschema); accountsModule = container.get(Symbols.modules.accounts); @@ -46,9 +48,6 @@ describe('apis/accountsAPI', () => { }); describe('getAccount', () => { - - let isEmptyStub: SinonStub; - let accData; let query; let generatedAddress; @@ -79,8 +78,6 @@ describe('apis/accountsAPI', () => { .onCall(1).returns(false) .onCall(2).returns(true) .onCall(3).returns(true); - - AccountsAPIRewire.__set__('isEmpty', isEmptyStub); }); it('should call isEmpty', async () => { diff --git a/tests/unit/apis/blocksAPI.spec.ts b/tests/unit/apis/blocksAPI.spec.ts index 4bfb427d..4435b101 100644 --- a/tests/unit/apis/blocksAPI.spec.ts +++ b/tests/unit/apis/blocksAPI.spec.ts @@ -2,12 +2,13 @@ import * as chai from 'chai'; import { expect } from 'chai'; import * as chaiAsPromised from 'chai-as-promised'; import { Container } from 'inversify'; -import * as rewire from 'rewire'; import { SinonSandbox, SinonSpy, SinonStub } from 'sinon'; import * as sinon from 'sinon'; import { BlocksAPI } from '../../../src/apis/blocksAPI'; import { OrderBy } from '../../../src/helpers'; +import * as helpers from '../../../src/helpers'; import { Symbols } from '../../../src/ioc/symbols'; +import sql from '../../../src/sql/blocks'; import { BlockRewardLogicStub, BlocksModuleStub, DbStub, SequenceStub, SystemModuleStub, ZSchemaStub, } from '../../stubs'; @@ -16,8 +17,6 @@ import { createContainer } from '../../utils/containerCreator'; chai.use(chaiAsPromised); -const BlocksAPIRewire = rewire('../../../src/apis/blocksAPI'); - // tslint:disable no-unused-expression max-line-length describe('apis/blocksAPI', () => { @@ -37,7 +36,7 @@ describe('apis/blocksAPI', () => { beforeEach(() => { sandbox = sinon.sandbox.create(); container = createContainer(); - container.bind(Symbols.api.blocks).to(BlocksAPIRewire.BlocksAPI); + container.bind(Symbols.api.blocks).to(BlocksAPI); schema = container.get(Symbols.generic.zschema); db = container.get(Symbols.generic.db); @@ -373,8 +372,6 @@ describe('apis/blocksAPI', () => { blockRows = ['row1', 'row2']; instance = instance as any; - const helpers = BlocksAPIRewire.__get__('helpers_1'); - const sql = BlocksAPIRewire.__get__('blocks_2.default'); OrderBySpy = sandbox.spy(helpers, 'OrderBy'); countListSpy = sandbox.spy(sql, 'countList'); listSpy = sandbox.spy(sql, 'list'); diff --git a/tests/unit/logic/account.spec.ts b/tests/unit/logic/account.spec.ts index 27073a9f..91ad24a5 100644 --- a/tests/unit/logic/account.spec.ts +++ b/tests/unit/logic/account.spec.ts @@ -7,7 +7,7 @@ import { SinonStub } from 'sinon'; import { DbStub, LoggerStub, ZSchemaStub } from '../../stubs'; const pgpStub = { QueryFile : () => { return; }} as any; -const RewireAccount = proxyquire('../../../src/logic/account', { +const ProxyAccount = proxyquire('../../../src/logic/account', { 'pg-promise': pgpStub, }); const jsonSql = jsonSqlCreator(); @@ -33,7 +33,7 @@ describe('logic/account', () => { beforeEach(() => { loggerStub = new LoggerStub(); zSchemaStub = new ZSchemaStub(); - account = new RewireAccount.AccountLogic(); + account = new ProxyAccount.AccountLogic(); // Inject the dependencies (account as any).db = dbStub; (account as any).logger = loggerStub; diff --git a/tests/unit/logic/transactions/createmultisig.spec.ts b/tests/unit/logic/transactions/createmultisig.spec.ts index 61ce6b5d..903f21b6 100644 --- a/tests/unit/logic/transactions/createmultisig.spec.ts +++ b/tests/unit/logic/transactions/createmultisig.spec.ts @@ -111,18 +111,20 @@ describe('logic/transactions/createmultisig', () => { before(() => { toRestore.writeByte = ByteBuffer.prototype.writeByte; + toRestore.writeInt = ByteBuffer.prototype.writeInt; + toRestore.writeLong = (ByteBuffer.prototype as any).writeLong; toRestore.toBuffer = ByteBuffer.prototype.toBuffer; toRestore.flip = ByteBuffer.prototype.flip; }); beforeEach(() => { - lastBB = false; + lastBB = false; sequence = []; (ByteBuffer.prototype as any).writeByte = function(b) { sequence.push(b); lastBB = this; }; - ByteBuffer.prototype.flip = sandbox.stub(); ByteBuffer.prototype.toBuffer = sandbox.stub().returns(expectedBuffer); + ByteBuffer.prototype.flip = sandbox.stub(); }); after(() => { @@ -130,6 +132,7 @@ describe('logic/transactions/createmultisig', () => { (ByteBuffer.prototype as any).writeInt = toRestore.writeInt; (ByteBuffer.prototype as any).writeLong = toRestore.writeLong; ByteBuffer.prototype.flip = toRestore.flip; + ByteBuffer.prototype.toBuffer = toRestore.toBuffer; }); it('should call Buffer.from', () => { diff --git a/tests/unit/modules/forge.spec.ts b/tests/unit/modules/forge.spec.ts index cccc2f58..2848760b 100644 --- a/tests/unit/modules/forge.spec.ts +++ b/tests/unit/modules/forge.spec.ts @@ -242,7 +242,6 @@ describe('modules/forge', () => { }); describe('onBlockchainReady', () => { - // We cannot use rewire here due to incompatibility with FakeTimers. let inst: ForgeModule; let forgeStub: SinonStub; beforeEach(() => { diff --git a/tests/unit/modules/loader.spec.ts b/tests/unit/modules/loader.spec.ts index b8844dd2..fffb6c68 100644 --- a/tests/unit/modules/loader.spec.ts +++ b/tests/unit/modules/loader.spec.ts @@ -47,7 +47,7 @@ let promiseRetryStub: any; // tslint:disable no-unused-expression max-line-length // tslint:disable no-unused-expression object-literal-sort-keys -const LoaderModuleRewire = proxyquire('../../../src/modules/loader', { +const ProxyLoaderModule = proxyquire('../../../src/modules/loader', { 'promise-retry': (...args) => { return promiseRetryStub.apply(this, args); }, @@ -123,7 +123,7 @@ describe('modules/loader', () => { container.bind(Symbols.modules.transactions).to(TransactionsModuleStub).inSingletonScope(); container.bind(Symbols.modules.transport).to(TransportModuleStub).inSingletonScope(); - container.bind(Symbols.modules.loader).to(LoaderModuleRewire.LoaderModule); + container.bind(Symbols.modules.loader).to(ProxyLoaderModule.LoaderModule); instance = container.get(Symbols.modules.loader); }); @@ -1766,7 +1766,6 @@ describe('modules/loader', () => { }); describe('.syncTrigger', () => { - // We cannot use rewire here due to incompatibility with FakeTimers. let loggerStub: LoggerStub; let appStateStub: AppStateStub; let socketIoStub: SocketIOStub; diff --git a/tests/unit/modules/transactions.spec.ts b/tests/unit/modules/transactions.spec.ts index fe8608bb..51d9c7cd 100644 --- a/tests/unit/modules/transactions.spec.ts +++ b/tests/unit/modules/transactions.spec.ts @@ -2,7 +2,6 @@ import * as chai from 'chai'; import { expect } from 'chai'; import * as chaiAsPromised from 'chai-as-promised'; import { Container } from 'inversify'; -import * as rewire from 'rewire'; import * as sinon from 'sinon'; import { SinonSandbox, SinonSpy } from 'sinon'; import * as helpers from '../../../src/helpers';