From e7e14150398e820764b0c1cb0f6f2d0cabb621a9 Mon Sep 17 00:00:00 2001 From: bendtherules Date: Sat, 10 Aug 2019 12:59:40 +0530 Subject: [PATCH] Add testcases - utils.isConstructorComponentClass --- ...utils.isConstructorComponentClass.spec.tsx | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 test/utils.isConstructorComponentClass.spec.tsx diff --git a/test/utils.isConstructorComponentClass.spec.tsx b/test/utils.isConstructorComponentClass.spec.tsx new file mode 100644 index 0000000..a2d6e9c --- /dev/null +++ b/test/utils.isConstructorComponentClass.spec.tsx @@ -0,0 +1,74 @@ +// import * as React from "react"; + +// Import stuff from src +import { isConstructorComponentClass } from "../src/utils"; +import { + createFunctionComponent, + createClassComponent +} from "./utils/createComponent"; + +// Import test helpers and sample components + +describe("utils", () => { + let container: HTMLDivElement; + + beforeEach(() => { + container = document.body.appendChild(document.createElement("div")); + }); + + afterEach(() => { + document.body.removeChild(container); + }); + + describe("isConstructorComponentClass", () => { + it("should work for class components", () => { + const C1 = createClassComponent("C1"); + + const resultPositive = isConstructorComponentClass(C1); + + expect(resultPositive).not.toBeFalsy(); + expect(resultPositive).toBe(true); + }); + + it("should not work for any class", () => { + const C1 = class {}; + + const resultNegative = isConstructorComponentClass(C1 as any); + + expect(resultNegative).toBeFalsy(); + expect(resultNegative).toBe(false); + }); + + it("should not work for any function", () => { + const fn1 = function() {}; + + const resultNegative = isConstructorComponentClass(fn1 as any); + + expect(resultNegative).toBeFalsy(); + expect(resultNegative).toBe(false); + }); + + it("should not work for function components", () => { + const fn1 = createFunctionComponent(); + + const resultNegative = isConstructorComponentClass(fn1); + + expect(resultNegative).toBeFalsy(); + expect(resultNegative).toBe(false); + }); + + it("should not work for string", () => { + const resultNegative = isConstructorComponentClass("div"); + + expect(resultNegative).toBeFalsy(); + expect(resultNegative).toBe(false); + }); + + it("should not work for null", () => { + const resultNegative = isConstructorComponentClass(null); + + expect(resultNegative).toBeFalsy(); + expect(resultNegative).toBe(false); + }); + }); +});