import { renderHook, waitFor } from '@testing-library/react' import { vi, describe, it, expect, afterEach } from 'vitest' import { useD3Enabled } from './useD3Enabled' import * as ledger from '../api/ledger' afterEach(() => vi.restoreAllMocks()) describe('useD3Enabled', () => { it('is true when the D3 status reports enabled', async () => { vi.spyOn(ledger, 'financeStatus').mockResolvedValue({ enabled: true }) const { result } = renderHook(() => useD3Enabled()) await waitFor(() => expect(result.current).toBe(true)) }) it('is false when the status endpoint is absent (D3 dormant → 404)', async () => { vi.spyOn(ledger, 'financeStatus').mockRejectedValue(new Error('not found')) const { result } = renderHook(() => useD3Enabled()) await waitFor(() => expect(result.current).toBe(false)) }) it('is false when enabled is false (runtime not ready)', async () => { vi.spyOn(ledger, 'financeStatus').mockResolvedValue({ enabled: false }) const { result } = renderHook(() => useD3Enabled()) await waitFor(() => expect(result.current).toBe(false)) }) })