import { screen } from '@testing-library/react'
import { beforeEach, describe, expect, it, vi } from 'vitest'
import ApiKeysLayout from './APIKeysLayout'
import { customRender } from '@/tests/lib/custom-render'
const { mockUseHighAvailability } = vi.hoisted(() => ({
mockUseHighAvailability: vi.fn(),
}))
vi.mock('@/hooks/misc/useHighAvailability', () => ({
useHighAvailability: mockUseHighAvailability,
}))
const LEGACY_TAB = 'Legacy anon, service_role API keys'
const NEW_TAB = 'Publishable and secret API keys'
describe('ApiKeysLayout', () => {
beforeEach(() => {
vi.clearAllMocks()
})
it('hides the legacy keys tab on High Availability projects', () => {
mockUseHighAvailability.mockReturnValue({ isHighAvailability: true, isPending: false })
customRender(
content
)
expect(screen.getByText(NEW_TAB)).toBeInTheDocument()
expect(screen.queryByText(LEGACY_TAB)).not.toBeInTheDocument()
})
it('shows the legacy keys tab on other projects', () => {
mockUseHighAvailability.mockReturnValue({ isHighAvailability: false, isPending: false })
customRender(
content
)
expect(screen.getByText(NEW_TAB)).toBeInTheDocument()
expect(screen.getByRole('link', { name: LEGACY_TAB })).toHaveAttribute(
'href',
'/project/default/settings/api-keys/legacy'
)
})
})