From c37ffb6118422e19f6836c545f01b221dac9c875 Mon Sep 17 00:00:00 2001 From: Julien Rousseau Date: Mon, 20 Nov 2023 10:39:25 -0500 Subject: [PATCH] added unit tests for result --- src/result.test.ts | 45 +++++++++++++++++++++++++++++++++++++++++++++ src/result.ts | 2 +- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 src/result.test.ts diff --git a/src/result.test.ts b/src/result.test.ts new file mode 100644 index 0000000..bcf7a61 --- /dev/null +++ b/src/result.test.ts @@ -0,0 +1,45 @@ +import { describe, expect, test } from "bun:test"; +import { Err, Ok } from "./result.js"; + +describe("result", () => { + test("Err", () => { + const result = Err(new Error("test error")); + expect(result.success).toBeFalse(); + if (!result.success) { + expect(result.error.message).toBe("test error"); + } + + // @ts-expect-error + result.payload; + }); + + test("Err different type", () => { + const result = Err("test error"); + expect(result.success).toBeFalse(); + if (!result.success) { + expect(result.error).toBe("test error"); + } + }); + + test("Ok", () => { + const result = Ok(); + expect(result.success).toBeTrue(); + expect("payload" in result).toBeFalse(); + + // @ts-expect-error + result.payload; + // @ts-expect-error + result.error; + }); + + test("Ok payload", () => { + const result = Ok("test payload"); + expect(result.success).toBeTrue(); + if (result.success) { + expect(result.payload).toBe("test payload"); + } + + // @ts-expect-error + result.error; + }); +}); diff --git a/src/result.ts b/src/result.ts index 31d5076..8399ed4 100644 --- a/src/result.ts +++ b/src/result.ts @@ -9,7 +9,7 @@ export function Ok< P extends string | number | object | undefined = undefined, R = P extends undefined ? OkResult : OkResult

>(payload?: P): R { - if (payload === undefined) { + if (payload !== undefined) { return { success: true, payload } as R; } return { success: true } as R;