From 9af81775019468643c568d96263d0efa777e6924 Mon Sep 17 00:00:00 2001 From: bendtherules Date: Sun, 15 Dec 2019 16:34:33 +0530 Subject: [PATCH] renderer-spec - Add basic tests for literal and one level component --- __tests__/renderer-spec.tsx | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 __tests__/renderer-spec.tsx diff --git a/__tests__/renderer-spec.tsx b/__tests__/renderer-spec.tsx new file mode 100644 index 0000000..df085be --- /dev/null +++ b/__tests__/renderer-spec.tsx @@ -0,0 +1,39 @@ +import * as React from "react"; +import { render } from "../src/renderer"; + +test("should render plain text", () => { + expect((render("abcd") as string).trim()).toBe("abcd"); +}); + +test("should render numbers as text", () => { + expect((render(123) as string).trim()).toBe("123"); +}); + +test("should render null and not fail for empty values", () => { + expect(render(null)).toBe(null); + expect(render(undefined)).toBe(null); + expect(render([])).toBe(null); +}); + +test("should render plain text with simple Function Component", () => { + function TestComponent() { + return "abcd"; + } + + // Note: Rendering string from JSX shows TS error (https://github.com/DefinitelyTyped/DefinitelyTyped/issues/20544). This is a workaround. + expect( + (render( + React.createElement((TestComponent as unknown) as React.FunctionComponent) + ) as string).trim() + ).toBe("abcd"); +}); + +test("should render plain text with simple Class Component", () => { + class TestComponent extends React.Component { + render() { + return "abcd"; + } + } + + expect((render() as string).trim()).toBe("abcd"); +});