import { render, screen } from '@testing-library/react'
import { beforeEach, describe, expect, it, vi } from 'vitest'
import { I18nProvider } from '@/lib/i18n-context'
import { OfflineBanner } from './OfflineBanner'
const useOnlineStatusMock = vi.fn(() => true)
vi.mock('@/hooks/useOnlineStatus', () => ({
useOnlineStatus: () => useOnlineStatusMock()
}))
describe('OfflineBanner', () => {
beforeEach(() => {
useOnlineStatusMock.mockReturnValue(true)
})
it('shows when the browser and hub are offline', () => {
useOnlineStatusMock.mockReturnValue(false)
render()
expect(screen.getByText(/currently offline/i)).toBeInTheDocument()
})
it('ignores navigator.onLine when the hub is connected', () => {
useOnlineStatusMock.mockReturnValue(false)
render()
expect(screen.queryByText(/currently offline/i)).toBeNull()
})
it('defers to the reconnecting banner during an SSE outage', () => {
useOnlineStatusMock.mockReturnValue(false)
render()
expect(screen.queryByText(/currently offline/i)).toBeNull()
})
})