import { describe, it, expect, beforeEach, afterEach } from "vitest"; import { generateSharedNumber, generateOfferNumber, } from "../services/numbering.service"; import prisma from "../config/database"; describe("generateSharedNumber", () => { beforeEach(async () => { await prisma.number_sequences.deleteMany({ where: { type: "shared" } }); }); afterEach(async () => { await prisma.number_sequences.deleteMany({ where: { type: "shared" } }); }); it("returns a non-empty string", async () => { const num = await generateSharedNumber(); expect(typeof num).toBe("string"); expect(num.length).toBeGreaterThan(0); }); it("increments on consecutive calls", async () => { const num1 = await generateSharedNumber(); const num2 = await generateSharedNumber(); expect(num1).not.toBe(num2); }); }); describe("generateOfferNumber", () => { beforeEach(async () => { await prisma.number_sequences.deleteMany({ where: { type: "offer" } }); }); afterEach(async () => { await prisma.number_sequences.deleteMany({ where: { type: "offer" } }); }); it("returns a non-empty string", async () => { const num = await generateOfferNumber(); expect(typeof num).toBe("string"); expect(num.length).toBeGreaterThan(0); }); it("increments on consecutive calls", async () => { const num1 = await generateOfferNumber(); const num2 = await generateOfferNumber(); expect(num1).not.toBe(num2); }); });