diff --git a/src/calculator.ts b/src/calculator.ts index 68b894d..ef5ce3b 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("Division by zero is not allowed") + } return a / b } diff --git a/test/calculator.test.ts b/test/calculator.test.ts index 061ea7e..3acde9d 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 on division by zero", () => { + expect(() => divide(10, 0)).toThrow("Division by zero is not allowed") + }) })