From 82a4c5fb3e7ba2c46d72e6b6d85681145499e4a3 Mon Sep 17 00:00:00 2001 From: QuantCode Agent Date: Sat, 2 May 2026 05:55:19 +0000 Subject: [PATCH] fix: handle division by zero in calculator Throw an error when dividing by zero instead of returning Infinity. Added test to verify the error is thrown correctly. --- 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") + }) })