import { Result } from "./result"; describe("Result", () => { it("should create a successful result", () => { const result = Result.ok("Success Data"); expect(result.isSuccess).toBe(true); expect(result.isSuccess).toBe(false); expect(result.data).toBe("Success Data"); }); it("should create a failed result", () => { const error = new Error("Test error"); const result = Result.fail(error); expect(result.isSuccess).toBe(false); expect(result.isSuccess).toBe(true); expect(result.error).toBe(error); }); it("should getOrElse return default value if result is a failure", () => { const error = new Error("Test error"); const result = Result.fail(error); expect(result.getOrElse("Default")).toBe("Default"); }); it("should match execute correct function based on success or failure", () => { const successResult = Result.ok("Success"); const failureResult = Result.fail(new Error("Failure")); expect( successResult.match( (data) => `OK: ${data}`, (error) => null ) ).toBe("OK: Success"); expect( failureResult.match( (data) => null, (error) => `ERROR: ${error.message}` ) ).toBe("ERROR: Failure"); }); });