import { describe, expect, it, mock } from 'bun:test'; import { prismaMock } from '../support/prisma.mock'; describe('duplicate-subscription', () => { it('returns true when status is ACTIVE', async () => { prismaMock.complexBilling.findUnique.mockResolvedValue({ status: 'ACTIVE', } as never); const { hasActiveSubscription } = await import( '@/modules/billing/services/billing-repository.service' ); const result = await hasActiveSubscription('complex-active'); expect(result.ok).toBe(true); if (result.ok) { expect(result.value).toBe(true); } }); it('returns true when status is TRIAL', async () => { prismaMock.complexBilling.findUnique.mockResolvedValue({ status: 'TRIAL', } as never); const { hasActiveSubscription } = await import( '@/modules/billing/services/billing-repository.service' ); const result = await hasActiveSubscription('complex-trial'); expect(result.ok).toBe(true); if (result.ok) { expect(result.value).toBe(true); } }); it('returns false when status is CANCELED', async () => { prismaMock.complexBilling.findUnique.mockResolvedValue({ status: 'CANCELED', } as never); const { hasActiveSubscription } = await import( '@/modules/billing/services/billing-repository.service' ); const result = await hasActiveSubscription('complex-canceled'); expect(result.ok).toBe(true); if (result.ok) { expect(result.value).toBe(false); } }); it('returns false when no billing record exists', async () => { prismaMock.complexBilling.findUnique.mockResolvedValue(null as never); const { hasActiveSubscription } = await import( '@/modules/billing/services/billing-repository.service' ); const result = await hasActiveSubscription('complex-no-billing'); expect(result.ok).toBe(true); if (result.ok) { expect(result.value).toBe(false); } }); });