chore: git cache cleanup

This commit is contained in:
GitHub Actions
2026-03-04 18:34:39 +00:00
parent 7a8b0343e4
commit c32cce2a88
2001 changed files with 0 additions and 683185 deletions

View File

@@ -1,221 +0,0 @@
import { describe, it, expect, vi } from 'vitest'
import { render, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { DNSDetectionResult } from '../DNSDetectionResult'
import type { DetectionResult } from '../../api/dnsDetection'
import type { DNSProvider } from '../../api/dnsProviders'
// Mock react-i18next
vi.mock('react-i18next', () => ({
useTranslation: () => ({
t: (key: string, params?: Record<string, unknown>) => {
const translations: Record<string, string> = {
'dns_detection.detecting': 'Detecting DNS provider...',
'dns_detection.detected': `${params?.provider} detected`,
'dns_detection.confidence_high': 'High confidence',
'dns_detection.confidence_medium': 'Medium confidence',
'dns_detection.confidence_low': 'Low confidence',
'dns_detection.confidence_none': 'No match',
'dns_detection.not_detected': 'Could not detect DNS provider',
'dns_detection.use_suggested': `Use ${params?.provider}`,
'dns_detection.select_manually': 'Select manually',
'dns_detection.nameservers': 'Nameservers',
'dns_detection.error': `Detection failed: ${params?.error}`,
}
return translations[key] || key
},
}),
}))
describe('DNSDetectionResult', () => {
const mockSuggestedProvider: DNSProvider = {
id: 1,
uuid: 'test-uuid',
name: 'Production Cloudflare',
provider_type: 'cloudflare',
enabled: true,
is_default: true,
has_credentials: true,
propagation_timeout: 120,
polling_interval: 5,
success_count: 10,
failure_count: 0,
created_at: '2026-01-01T00:00:00Z',
updated_at: '2026-01-01T00:00:00Z',
}
it('should show loading state', () => {
render(
<DNSDetectionResult
result={{} as DetectionResult}
isLoading={true}
/>
)
expect(screen.getByText('Detecting DNS provider...')).toBeInTheDocument()
})
it('should show error message', () => {
const result: DetectionResult = {
domain: 'example.com',
detected: false,
nameservers: [],
confidence: 'none',
error: 'Network error',
}
render(<DNSDetectionResult result={result} />)
expect(screen.getByText(/Detection failed: Network error/)).toBeInTheDocument()
})
it('should show not detected message with nameservers', () => {
const result: DetectionResult = {
domain: 'example.com',
detected: false,
nameservers: ['ns1.unknown.com', 'ns2.unknown.com'],
confidence: 'none',
}
render(<DNSDetectionResult result={result} />)
expect(screen.getByText('Could not detect DNS provider')).toBeInTheDocument()
expect(screen.getByText(/nameservers/i)).toBeInTheDocument()
expect(screen.getByText('ns1.unknown.com')).toBeInTheDocument()
expect(screen.getByText('ns2.unknown.com')).toBeInTheDocument()
})
it('should show successful detection with high confidence', () => {
const result: DetectionResult = {
domain: 'example.com',
detected: true,
provider_type: 'cloudflare',
nameservers: ['ns1.cloudflare.com', 'ns2.cloudflare.com'],
confidence: 'high',
suggested_provider: mockSuggestedProvider,
}
render(<DNSDetectionResult result={result} />)
expect(screen.getByText('cloudflare detected')).toBeInTheDocument()
expect(screen.getByText('High confidence')).toBeInTheDocument()
expect(screen.getByText('Use Production Cloudflare')).toBeInTheDocument()
expect(screen.getByText('Select manually')).toBeInTheDocument()
})
it('should call onUseSuggested when "Use" button is clicked', async () => {
const user = userEvent.setup()
const onUseSuggested = vi.fn()
const result: DetectionResult = {
domain: 'example.com',
detected: true,
provider_type: 'cloudflare',
nameservers: ['ns1.cloudflare.com'],
confidence: 'high',
suggested_provider: mockSuggestedProvider,
}
render(
<DNSDetectionResult
result={result}
onUseSuggested={onUseSuggested}
/>
)
await user.click(screen.getByText('Use Production Cloudflare'))
expect(onUseSuggested).toHaveBeenCalledWith(mockSuggestedProvider)
})
it('should call onSelectManually when "Select manually" button is clicked', async () => {
const user = userEvent.setup()
const onSelectManually = vi.fn()
const result: DetectionResult = {
domain: 'example.com',
detected: true,
provider_type: 'cloudflare',
nameservers: ['ns1.cloudflare.com'],
confidence: 'high',
suggested_provider: mockSuggestedProvider,
}
render(
<DNSDetectionResult
result={result}
onSelectManually={onSelectManually}
/>
)
await user.click(screen.getByText('Select manually'))
expect(onSelectManually).toHaveBeenCalled()
})
it('should show medium confidence badge', () => {
const result: DetectionResult = {
domain: 'example.com',
detected: true,
provider_type: 'route53',
nameservers: ['ns-123.awsdns-12.com'],
confidence: 'medium',
}
render(<DNSDetectionResult result={result} />)
expect(screen.getByText('Medium confidence')).toBeInTheDocument()
})
it('should show low confidence badge', () => {
const result: DetectionResult = {
domain: 'example.com',
detected: true,
provider_type: 'digitalocean',
nameservers: ['ns1.digitalocean.com'],
confidence: 'low',
}
render(<DNSDetectionResult result={result} />)
expect(screen.getByText('Low confidence')).toBeInTheDocument()
})
it('should show expandable nameservers list', async () => {
const user = userEvent.setup()
const result: DetectionResult = {
domain: 'example.com',
detected: true,
provider_type: 'cloudflare',
nameservers: ['ns1.cloudflare.com', 'ns2.cloudflare.com', 'ns3.cloudflare.com'],
confidence: 'high',
suggested_provider: mockSuggestedProvider,
}
render(<DNSDetectionResult result={result} />)
// Nameservers are in a details element
const summary = screen.getByText(/Nameservers \(3\)/)
await user.click(summary)
expect(screen.getByText('ns1.cloudflare.com')).toBeInTheDocument()
expect(screen.getByText('ns2.cloudflare.com')).toBeInTheDocument()
expect(screen.getByText('ns3.cloudflare.com')).toBeInTheDocument()
})
it('should not show action buttons when no suggested provider', () => {
const result: DetectionResult = {
domain: 'example.com',
detected: true,
provider_type: 'cloudflare',
nameservers: ['ns1.cloudflare.com'],
confidence: 'high',
}
render(<DNSDetectionResult result={result} />)
expect(screen.queryByText(/Use/)).not.toBeInTheDocument()
expect(screen.queryByText('Select manually')).not.toBeInTheDocument()
})
})