added some tests to utils folder

This commit is contained in:
Dan Ditomaso
2025-02-24 12:39:25 -05:00
parent 14e9bd304a
commit c9536c9ffd
3 changed files with 178 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
import { beforeEach, describe, expect, it, vi } from "vitest";
import { randId } from "./randId";
describe("randId", () => {
beforeEach(() => {
vi.restoreAllMocks();
});
it("returns a number", () => {
const result = randId();
expect(typeof result).toBe("number");
});
it("returns an integer", () => {
const result = randId();
expect(Number.isInteger(result)).toBe(true);
});
it("uses Math.random to generate the number", () => {
const mockRandom = vi.spyOn(Math, "random").mockReturnValue(0.5);
const result = randId();
expect(mockRandom).toHaveBeenCalled();
expect(result).toBe(Math.floor(0.5 * 1e9));
});
it("returns a value between 0 and 1e9 (exclusive)", () => {
const result = randId();
expect(result).toBeGreaterThanOrEqual(0);
expect(result).toBeLessThan(1e9);
});
it("returns different values on subsequent calls", () => {
vi.spyOn(Math, "random").mockRestore();
const results = new Set();
for (let i = 0; i < 100; i++) {
results.add(randId());
}
expect(results.size).toBeGreaterThan(95);
});
});