From 906cd2e42384c4ca4b52465ffdbfecf2adece78a Mon Sep 17 00:00:00 2001 From: QuantCode Agent Date: Sat, 2 May 2026 05:53:10 +0000 Subject: [PATCH] fix: handle division by zero in calculator with descriptive error - Add guard clause in divide() to throw Error when divisor is zero - Add tests for normal division and divide-by-zero error case --- src/calculator.ts | 4 +++- test/calculator.test.ts | 12 +++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/calculator.ts b/src/calculator.ts index 68b894d..d1d45cf 100644 --- a/src/calculator.ts +++ b/src/calculator.ts @@ -15,7 +15,9 @@ export function multiply(a: number, b: number): number { return a * b } -// BUG: Division by zero is not handled export function divide(a: number, b: number): number { + if (b === 0) { + throw new Error("Cannot divide by zero") + } return a / b } diff --git a/test/calculator.test.ts b/test/calculator.test.ts index 061ea7e..27948a4 100644 --- a/test/calculator.test.ts +++ b/test/calculator.test.ts @@ -1,7 +1,5 @@ import { describe, test, expect } from "bun:test" -import { add, subtract, multiply } from "../src/calculator" - -// Note: divide is intentionally not tested — has a known bug +import { add, subtract, multiply, divide } from "../src/calculator" describe("calculator", () => { test("adds two numbers", () => { @@ -15,4 +13,12 @@ describe("calculator", () => { test("multiplies two numbers", () => { expect(multiply(4, 3)).toBe(12) }) + + test("divides two numbers", () => { + expect(divide(10, 2)).toBe(5) + }) + + test("throws when dividing by zero", () => { + expect(() => divide(10, 0)).toThrow("Cannot divide by zero") + }) })