Files
opsxshell/test/components/ShellClosedOverlay.test.tsx
T

25 lines
1.2 KiB
TypeScript

import { fireEvent, render, screen } from '@testing-library/react'
import { describe, expect, it, vi } from 'vitest'
import { ShellClosedOverlay } from '../../src/components/terminal/TerminalOverlay'
describe('remote shell close recovery', () => {
it('explains remote TMOUT without claiming the pooled SSH connection is dead', () => {
const reopen = vi.fn()
render(<ShellClosedOverlay reason="远端 Shell 因空闲策略(TMOUT)自动退出" idleTimeout onReopen={reopen} />)
expect(screen.getByText('空闲超时,Shell 已退出')).toBeVisible()
expect(screen.getByText(/SSH 连接仍可用/)).toBeVisible()
fireEvent.click(screen.getByRole('button', { name: '重新打开 Shell' }))
expect(reopen).toHaveBeenCalledTimes(1)
})
it('local shell exit never mentions the SSH connection', () => {
const reopen = vi.fn()
render(<ShellClosedOverlay reason="本地 Shell 已退出" idleTimeout={false} isLocal onReopen={reopen} />)
expect(screen.getByText('Shell 已退出')).toBeVisible()
expect(screen.getByText('重新打开 Shell 即可继续使用本地终端')).toBeVisible()
expect(screen.queryByText(/SSH 连接仍可用/)).toBeNull()
})
})