import { describe, it, expect, beforeAll, afterEach, afterAll } from 'vitest'
import { render, screen, waitFor } from '@testing-library/react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { BrowserRouter } from 'react-router-dom'
import React from 'react'
import { http, HttpResponse } from 'msw'
import { setupServer } from 'msw/node'
const handlers = [
http.get('/api/v1/cluster/health', () => HttpResponse.json({
healthy: true,
total_servers: 12,
active_servers: 10,
error_servers: 1,
services_up: 50,
services_down: 2
})),
]
const server = setupServer(...handlers)
beforeAll(() => server.listen())
afterEach(() => server.resetHandlers())
afterAll(() => server.close())
const queryClient = new QueryClient({ defaultOptions: { queries: { retry: false } } })
describe('Dashboard Integration Tests', () => {
it('renders without crashing', async () => {
const { default: Dashboard } = await import('../../src/pages/Dashboard')
render(
)
await waitFor(() => {
expect(screen.getByText('Total Servers')).toBeInTheDocument()
})
})
it('displays stats correctly', async () => {
const { default: Dashboard } = await import('../../src/pages/Dashboard')
render(
)
await waitFor(() => {
expect(screen.getByText('12')).toBeInTheDocument()
})
})
})