From 609c0930b9a4ebe5d9264eb980e9b63f7b3706f1 Mon Sep 17 00:00:00 2001 From: eunjae-lee Date: Wed, 16 Dec 2020 17:06:22 +0100 Subject: [PATCH] fix: warn about unknown function name --- lib/__tests__/_getFunctionalInterface.test.ts | 20 +++++++++++++++++++ lib/_getFunctionalInterface.ts | 2 ++ 2 files changed, 22 insertions(+) create mode 100644 lib/__tests__/_getFunctionalInterface.test.ts diff --git a/lib/__tests__/_getFunctionalInterface.test.ts b/lib/__tests__/_getFunctionalInterface.test.ts new file mode 100644 index 00000000..8c8aed46 --- /dev/null +++ b/lib/__tests__/_getFunctionalInterface.test.ts @@ -0,0 +1,20 @@ +import AlgoliaAnalytics from "../insights"; +import { getFunctionalInterface } from "../_getFunctionalInterface"; + +describe("_getFunctionalInterface", () => { + let aa; + + beforeEach(() => { + const analyticsInstance = new AlgoliaAnalytics({ requestFn: () => {} }); + aa = getFunctionalInterface(analyticsInstance); + }); + + it("warn about unknown function name", () => { + console.warn = jest.fn(); + aa("unknown-function"); + expect(console.warn).toHaveBeenCalledTimes(1); + expect(console.warn).toHaveBeenCalledWith( + "The method `unknown-function` doesn't exist." + ); + }); +}); diff --git a/lib/_getFunctionalInterface.ts b/lib/_getFunctionalInterface.ts index fb43dfbf..acf12353 100644 --- a/lib/_getFunctionalInterface.ts +++ b/lib/_getFunctionalInterface.ts @@ -5,6 +5,8 @@ export function getFunctionalInterface(instance: AlgoliaAnalytics) { return (functionName: string, ...functionArguments: any[]) => { if (functionName && isFunction((instance as any)[functionName])) { instance[functionName](...functionArguments); + } else { + console.warn(`The method \`${functionName}\` doesn't exist.`); } }; }