| 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)) |
| }) |
| }) |
|
|