/** * HostKeyDialog — first-connect / changed-key confirmation */ import { render, screen } from '@testing-library/react' import userEvent from '@testing-library/user-event' import { describe, expect, it, vi } from 'vitest' import HostKeyDialog from '../../src/components/terminal/HostKeyDialog' describe('HostKeyDialog', () => { it('emits accept-always for a new host key', async () => { const user = userEvent.setup() const onDecision = vi.fn() render( ) expect(screen.getByText('确认主机密钥')).toBeVisible() await user.click(screen.getByRole('button', { name: '始终信任' })) expect(onDecision).toHaveBeenCalledWith('accept-always') }) it('shows previous fingerprint when the key changed', async () => { const user = userEvent.setup() const onDecision = vi.fn() render( ) expect(screen.getByText('主机密钥已变更')).toBeVisible() expect(screen.getByText(/SHA256:OLD/)).toBeVisible() await user.click(screen.getByRole('button', { name: '仍要信任并更新' })) expect(onDecision).toHaveBeenCalledWith('accept-always') }) })