import { getBoolFromString } from "./boolean-helper"; describe("getBoolFromString", () => { describe("Happy paths", () => { test('"true" -> true', () => { const input = "true"; const output = getBoolFromString(input); expect(output).toBe(true); }); test('"false" -> false', () => { const input = "false"; const output = getBoolFromString(input); expect(output).toBe(false); }); test('"other string" -> false', () => { const input = "some random value"; const output = getBoolFromString(input); expect(output).toBe(false); }); }); describe("Capitalization", () => { test('"TRUE" -> true', () => { const input = "TRUE"; const output = getBoolFromString(input); expect(output).toBe(true); }); test('"True" -> true', () => { const input = "True"; const output = getBoolFromString(input); expect(output).toBe(true); }); test('"FALSE" -> false', () => { const input = "FALSE"; const output = getBoolFromString(input); expect(output).toBe(false); }); test('"False" -> false', () => { const input = "False"; const output = getBoolFromString(input); expect(output).toBe(false); }); }); describe("Graceful type errors", () => { describe("Boolean", () => { test("true -> true", () => { const input = true; const output = getBoolFromString(input); expect(output).toBe(true); }); test("false -> false", () => { const input = false; const output = getBoolFromString(input); expect(output).toBe(false); }); }); describe("Empty", () => { test("undefined -> false", () => { const input = undefined; const output = getBoolFromString(input); expect(output).toBe(false); }); test("null -> false", () => { const input = null; const output = getBoolFromString(input); expect(output).toBe(false); }); test("{} -> false", () => { const input = {}; const output = getBoolFromString(input); expect(output).toBe(false); }); }); describe("Other types", () => { test("1 -> false", () => { const input = 1; const output = getBoolFromString(input); expect(output).toBe(false); }); test("Object -> false", () => { const input = { test: true, true: true, }; const output = getBoolFromString(input); expect(output).toBe(false); }); test("function -> false", () => { const input = () => true; const output = getBoolFromString(input); expect(output).toBe(false); }); test("array -> false", () => { const input = [true]; const output = getBoolFromString(input); expect(output).toBe(false); }); }); }); });