From c31b6c26fd07c5d81c5fbec34c6e1b07f178000a Mon Sep 17 00:00:00 2001 From: Rauno Viskus Date: Wed, 2 Jun 2021 12:23:21 +0300 Subject: [PATCH] feat: update tests and NoopContextManager Leave checking special cases for the actual ContextManager and remove the short-circuit from the API implementation. --- src/api/context.ts | 5 +---- src/context/NoopContextManager.ts | 2 +- src/context/types.ts | 2 +- test/context/NoopContextManager.test.ts | 4 ++-- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/api/context.ts b/src/api/context.ts index e42c807a..19220f25 100644 --- a/src/api/context.ts +++ b/src/api/context.ts @@ -83,10 +83,7 @@ export class ContextAPI { * @param target function or event emitter to bind */ public bind(context: Context, target: T): T { - if (context === undefined) { - return target; - } - return this._getContextManager().bind(target, context); + return this._getContextManager().bind(context, target); } private _getContextManager(): ContextManager { diff --git a/src/context/NoopContextManager.ts b/src/context/NoopContextManager.ts index 54589a06..a62a89d3 100644 --- a/src/context/NoopContextManager.ts +++ b/src/context/NoopContextManager.ts @@ -31,7 +31,7 @@ export class NoopContextManager implements types.ContextManager { return fn.call(thisArg, ...args); } - bind(target: T, _context?: types.Context): T { + bind(_context: types.Context, target: T): T { return target; } diff --git a/src/context/types.ts b/src/context/types.ts index af7a1ee1..622b1918 100644 --- a/src/context/types.ts +++ b/src/context/types.ts @@ -65,7 +65,7 @@ export interface ContextManager { * @param target Any object to which a context need to be set * @param [context] Optionally specify the context which you want to assign */ - bind(target: T, context?: Context): T; + bind(context: Context, target: T): T; /** * Enable context management diff --git a/test/context/NoopContextManager.test.ts b/test/context/NoopContextManager.test.ts index b5da8e6d..91428286 100644 --- a/test/context/NoopContextManager.test.ts +++ b/test/context/NoopContextManager.test.ts @@ -119,13 +119,13 @@ describe('NoopContextManager', () => { describe('.bind()', () => { it('should return the same target (when enabled)', () => { const test = { a: 1 }; - assert.deepStrictEqual(contextManager.bind(test), test); + assert.deepStrictEqual(contextManager.bind(contextManager.active(), test), test); }); it('should return the same target (when disabled)', () => { contextManager.disable(); const test = { a: 1 }; - assert.deepStrictEqual(contextManager.bind(test), test); + assert.deepStrictEqual(contextManager.bind(contextManager.active(), test), test); contextManager.enable(); }); });