* Add network health indicator to AppHeader * Add tests for network detection responsiveness * Format test file
52 lines
1.3 KiB
TypeScript
52 lines
1.3 KiB
TypeScript
import { fireEvent, render, screen } from '@testing-library/react'
|
|
import UserSidebarMenu from './UserSidebarMenu'
|
|
import { BrowserRouter } from 'react-router-dom'
|
|
import { GlobalStateProvider } from './GlobalStateProvider'
|
|
import CommandBarProvider from './CommandBar'
|
|
import {
|
|
NETWORK_CONTENT,
|
|
NetworkHealthIndicator,
|
|
} from './NetworkHealthIndicator'
|
|
|
|
function TestWrap({ children }: { children: React.ReactNode }) {
|
|
// wrap in router and xState context
|
|
return (
|
|
<BrowserRouter>
|
|
<CommandBarProvider>
|
|
<GlobalStateProvider>{children}</GlobalStateProvider>
|
|
</CommandBarProvider>
|
|
</BrowserRouter>
|
|
)
|
|
}
|
|
|
|
describe('NetworkHealthIndicator tests', () => {
|
|
test('Renders the network indicator', () => {
|
|
render(
|
|
<TestWrap>
|
|
<NetworkHealthIndicator />
|
|
</TestWrap>
|
|
)
|
|
|
|
fireEvent.click(screen.getByTestId('network-toggle'))
|
|
|
|
expect(screen.getByTestId('network-good')).toHaveTextContent(
|
|
NETWORK_CONTENT.good
|
|
)
|
|
})
|
|
|
|
test('Responds to network changes', () => {
|
|
render(
|
|
<TestWrap>
|
|
<NetworkHealthIndicator />
|
|
</TestWrap>
|
|
)
|
|
|
|
fireEvent.offline(window)
|
|
fireEvent.click(screen.getByTestId('network-toggle'))
|
|
|
|
expect(screen.getByTestId('network-bad')).toHaveTextContent(
|
|
NETWORK_CONTENT.bad
|
|
)
|
|
})
|
|
})
|