test: remove low-value mobile, focus, and prompt coverage (#41692)

Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
This commit is contained in:
OrcaWin
2026-11-12 15:16:17 -08:00
committed by GitHub
co-authored by OrcaWin
parent 91b3f12f03
commit 43df511fad
6 changed files with 0 additions and 364 deletions
@@ -6354,7 +6354,6 @@
"src/shared/git/worktrees/git-worktree-admin.test.ts": 161,
"src/shared/github/account-binding.test.ts": 48,
"src/shared/github/api-availability.test.ts": 47,
"src/shared/source-control/review-comments/pr-comments-resolution-prompt.test.ts": 49,
"src/shared/github/project-board-columns.test.ts": 64,
"src/shared/github/project-identity.test.ts": 33,
"src/shared/github/project-ref-input.test.ts": 40,
@@ -9,21 +9,6 @@ function ok(result: unknown): RpcResponse {
return { id: 'rpc', ok: true, result, _meta: { runtimeId: 'runtime-1' } }
}
function createClient(responses: (RpcResponse | Error)[]) {
return {
sendRequest: vi.fn<SendRequest>(async (method) => {
const response = responses.shift()
if (!response) {
throw new Error(`no scripted response for ${method}`)
}
if (response instanceof Error) {
throw response
}
return response
})
}
}
function activeTerminalState(activated: boolean) {
return {
activated,
@@ -92,14 +77,6 @@ describe('openMobileFileTap', () => {
.map(([, params]) => params)
}
it('opens the longest terminal reading that exists, as desktop does', async () => {
const opened = await openTerminalReadings(
['src/index.ts', 'src/index.ts.map', 'src/index.ts.map.bak'],
new Set(['src/index.ts', 'src/index.ts.map'])
)
expect(opened).toEqual([{ worktree: 'id:wt-1', relativePath: 'src/index.ts.map' }])
})
it('still checks the real path behind hundreds of hard-wrap guesses', async () => {
const guesses = Array.from({ length: 210 }, (_, index) => `src/file${index}.tssrc/next.ts`)
const opened = await openTerminalReadings(
@@ -108,94 +85,4 @@ describe('openMobileFileTap', () => {
)
expect(opened).toEqual([{ worktree: 'id:wt-1', relativePath: 'src/file19.ts' }])
})
it('does not navigate an absolute artifact after the user leaves the source terminal', async () => {
let resolveRequest: (value: RpcResponse) => void = () => {}
const client = {
sendRequest: vi.fn<SendRequest>(
() =>
new Promise((resolve) => {
resolveRequest = resolve
})
)
}
let activeTerminalHandle: string | null = 'terminal-1'
const pushPreviewRoute = vi.fn()
openMobileFileTap({
client,
hostId: 'host-1',
worktreeId: 'wt-1',
candidates: [{ pathText: '/tmp/result.json', line: null, column: null }],
terminalHandle: 'terminal-1',
pushPreviewRoute,
openBrowser: vi.fn(),
triggerOpenFeedback: vi.fn(),
fetchSessionTabs: vi.fn(),
getSessionTabs: () => [],
getActiveSessionTabId: () => null,
getActivationState: (activated) => ({
...activeTerminalState(activated),
activeTerminalHandle
}),
switchSessionTab: vi.fn(),
scheduleDelayedAction: vi.fn()
})
activeTerminalHandle = 'terminal-2'
resolveRequest(
ok({
worktree: 'wt-1',
relativePath: null,
absolutePath: '/tmp/result.json',
exists: true,
isDirectory: false,
openTarget: {
kind: 'absolute-file',
provider: 'local',
absolutePath: '/tmp/result.json',
grantId: 'grant-1'
}
})
)
await vi.advanceTimersByTimeAsync(0)
expect(pushPreviewRoute).not.toHaveBeenCalled()
})
it('does not report a stale failure after a newer tap supersedes it', async () => {
const client = createClient([
ok({
worktree: 'wt-1',
relativePath: null,
absolutePath: null,
exists: false,
isDirectory: false
})
])
const onOpenFailed = vi.fn()
openMobileFileTap({
client,
hostId: 'host-1',
worktreeId: 'wt-1',
candidates: [{ pathText: 'gone/missing.ts', line: null, column: null }],
pushPreviewRoute: vi.fn(),
openBrowser: vi.fn(),
triggerOpenFeedback: vi.fn(),
fetchSessionTabs: vi.fn(),
getSessionTabs: () => [],
getActiveSessionTabId: () => null,
getActivationState: (activated) => ({
...activeTerminalState(activated),
latestActivationSeq: 2
}),
switchSessionTab: vi.fn(),
scheduleDelayedAction: vi.fn(),
onOpenFailed
})
await vi.advanceTimersByTimeAsync(0)
expect(onOpenFailed).not.toHaveBeenCalled()
})
})
@@ -1,17 +1,9 @@
import { describe, expect, it, vi } from 'vitest'
import {
coordinateHostStackNavigation,
navigateToHostStackRoute,
type HostStackNavigationState
} from './host-stack-navigation'
const TARGET = { name: '[hostId]/tasks', params: { hostId: 'host/one' } } as const
const OTHER_TARGET = {
name: '[hostId]/session/[worktreeId]',
params: { hostId: 'host/one', worktreeId: 'repo::/tmp/wt' }
} as const
// Remove listeners for real so teardown is tested instead of merely the active guard.
function navigationHarness(initialState: HostStackNavigationState | undefined) {
const stateListeners = new Set<() => void>()
let state = initialState
@@ -57,58 +49,6 @@ function committedHostState(hostIdParam: string): HostStackNavigationState {
}
describe('host stack navigation', () => {
it('stops listening and never replaces once canceled', () => {
const harness = navigationHarness({ index: 0, routes: [{ name: 'index' }] })
const controller = navigateToHostStackRoute(
harness.navigation,
{ push: vi.fn(), replace: vi.fn() },
'host/one',
TARGET
)
expect(harness.listenerCount()).toBe(1)
controller.cancel()
expect(harness.unsubscribe).toHaveBeenCalledTimes(1)
expect(harness.listenerCount()).toBe(0)
expect(controller.isActive()).toBe(false)
harness.setState(committedHostState('host/one'))
expect(harness.navigation.dispatch).not.toHaveBeenCalled()
})
it('retargets a still-pending transition to the same host instead of pushing twice', () => {
const harness = navigationHarness({ index: 0, routes: [{ name: 'index' }] })
const push = vi.fn()
const router = { push, replace: vi.fn() }
const pending = coordinateHostStackNavigation(
null,
harness.navigation,
router,
'host/one',
TARGET
)
const retargeted = coordinateHostStackNavigation(
pending,
harness.navigation,
router,
'host/one',
OTHER_TARGET
)
expect(retargeted).toBe(pending)
expect(push).toHaveBeenCalledTimes(1)
expect(harness.listenerCount()).toBe(1)
harness.setState(committedHostState('host/one'))
expect(harness.navigation.dispatch).toHaveBeenCalledTimes(1)
expect(harness.navigation.dispatch).toHaveBeenCalledWith(
expect.objectContaining({ payload: OTHER_TARGET })
)
})
describe('a session opened inside its host document', () => {
const SESSION = {
name: '[hostId]/session/[worktreeId]',
@@ -155,27 +95,5 @@ describe('host stack navigation', () => {
]
])
})
it('lets another screen tapped while the push commits take the list place', () => {
const harness = navigationHarness({ index: 0, routes: [{ name: 'index' }] })
const push = vi.fn()
const router = { push, replace: vi.fn() }
const pending = coordinateHostStackNavigation(
null,
harness.navigation,
router,
'host/one',
SESSION,
true
)
coordinateHostStackNavigation(pending, harness.navigation, router, 'host/one', TARGET)
harness.setState(committedHostState('host/one'))
expect(push).toHaveBeenCalledTimes(1)
expect(harness.navigation.dispatch.mock.calls).toEqual([
[{ type: 'REPLACE', target: '/h', source: 'host-index', payload: TARGET }]
])
})
})
})
@@ -1,81 +0,0 @@
import { describe, expect, it } from 'vitest'
import { buildTerminalShortcutKey } from './terminal-accessory-keys'
describe('TERMINAL_ACCESSORY_KEYS', () => {
it('builds Ctrl, Alt, and Shift printable shortcut bytes', () => {
expect(buildTerminalShortcutKey({ key: 'c', modifiers: ['ctrl'] })).toEqual({
label: 'Ctrl+C',
bytes: '\x03',
accessibilityLabel: 'Ctrl C'
})
expect(buildTerminalShortcutKey({ key: 'k', modifiers: ['ctrl', 'alt'] })).toEqual({
label: 'Ctrl+Alt+K',
bytes: '\x1b\x0b',
accessibilityLabel: 'Ctrl Alt K'
})
expect(buildTerminalShortcutKey({ key: '1', modifiers: ['alt', 'shift'] })).toEqual({
label: 'Alt+Shift+1',
bytes: '\x1b!',
accessibilityLabel: 'Alt Shift 1'
})
})
it('builds custom Space shortcut bytes with terminal modifiers', () => {
expect(buildTerminalShortcutKey({ key: 'space', modifiers: [] })).toEqual({
label: 'Space',
bytes: ' ',
accessibilityLabel: 'Space'
})
expect(buildTerminalShortcutKey({ key: 'space', modifiers: ['ctrl'] })).toEqual({
label: 'Ctrl+Space',
bytes: '\x00',
accessibilityLabel: 'Ctrl Space'
})
expect(buildTerminalShortcutKey({ key: 'space', modifiers: ['alt'] })).toEqual({
label: 'Alt+Space',
bytes: '\x1b ',
accessibilityLabel: 'Alt Space'
})
})
it('builds modified special-key terminal sequences', () => {
expect(buildTerminalShortcutKey({ key: 'tab', modifiers: ['shift'] })).toEqual({
label: 'Shift+Tab',
bytes: '\x1b[Z',
accessibilityLabel: 'Shift Tab'
})
expect(buildTerminalShortcutKey({ key: 'enter', modifiers: [] })).toEqual({
label: 'Enter',
bytes: '\r',
accessibilityLabel: 'Enter'
})
expect(buildTerminalShortcutKey({ key: 'arrowRight', modifiers: ['ctrl', 'shift'] })).toEqual({
label: 'Ctrl+Shift+→',
bytes: '\x1b[1;6C',
accessibilityLabel: 'Ctrl Shift →'
})
expect(buildTerminalShortcutKey({ key: 'delete', modifiers: ['alt'] })).toEqual({
label: 'Alt+Del',
bytes: '\x1b[3;3~',
accessibilityLabel: 'Alt Del'
})
})
it('builds function-key terminal sequences', () => {
expect(buildTerminalShortcutKey({ key: 'f1', modifiers: [] })).toEqual({
label: 'F1',
bytes: '\x1bOP',
accessibilityLabel: 'F1'
})
expect(buildTerminalShortcutKey({ key: 'f5', modifiers: ['shift'] })).toEqual({
label: 'Shift+F5',
bytes: '\x1b[15;2~',
accessibilityLabel: 'Shift F5'
})
})
it('rejects control combinations that terminals cannot encode as control bytes', () => {
expect(buildTerminalShortcutKey({ key: '1', modifiers: ['ctrl'] })).toBeNull()
})
})
@@ -1,42 +0,0 @@
// @vitest-environment happy-dom
import { cleanup, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { afterEach, expect, it, vi } from 'vitest'
import { TerminalErrorToast } from './TerminalErrorToast'
vi.mock('@/i18n/use-translate', () => ({
useTranslate: () => (_key: string, text: string) => text
}))
afterEach(cleanup)
it('returns typing to the terminal when Retry disables its button', async () => {
const user = userEvent.setup()
let finishRetry!: (result: boolean) => void
const retry = new Promise<boolean>((resolve) => {
finishRetry = resolve
})
const terminal = document.createElement('textarea')
document.body.append(terminal)
try {
render(
<TerminalErrorToast
error="terminal_pane_owner_unverified"
paneOnClient={false}
onDismiss={() => {}}
onRetry={() => retry}
onRestoreTerminalFocus={() => terminal.focus()}
/>
)
await user.click(screen.getByRole('button', { name: /^Retry$/ }))
expect(document.activeElement).toBe(terminal)
await user.keyboard('echo retry')
expect(terminal.value).toBe('echo retry')
finishRetry(true)
await waitFor(() =>
expect(screen.getByRole('button', { name: /^Retry$/ }).hasAttribute('disabled')).toBe(false)
)
expect(document.activeElement).toBe(terminal)
} finally {
terminal.remove()
}
})
@@ -1,45 +0,0 @@
import { expect, it } from 'vitest'
import type { PRComment } from '../../github/comments/comment-types'
import { buildPRCommentsResolutionPrompt } from './pr-comments-resolution-prompt'
it('serializes selected thread content once while preserving replies and standalone feedback', () => {
const root: PRComment = {
id: 11,
author: 'reviewer',
authorAvatarUrl: '',
body: 'Check missing workspace names',
createdAt: '',
url: '',
threadId: 'discussion-1',
isResolved: false
}
const prompt = buildPRCommentsResolutionPrompt({
reviewKind: 'MR',
reviewNumber: 42,
reviewTitle: 'Workspace labels',
reviewUrl: 'https://gitlab.example/repo/-/merge_requests/42',
groups: [
{
kind: 'thread',
threadId: 'discussion-1',
root,
replies: [{ ...root, id: 12, body: 'Include older remote hosts' }]
},
{ kind: 'standalone', comment: { ...root, id: 13, body: 'Check cleanup sorting' } }
]
})
const serialized = prompt.split('Selected comment data JSON:\n')[1]!.split('\n\nRules:')[0]!
const payload = JSON.parse(serialized)
expect(payload).not.toHaveProperty('hostResolvableThreads')
expect(payload.selectedCommentGroups).toMatchObject([
{
kind: 'thread',
threadId: 'discussion-1',
isHostResolvable: true,
root: { id: 11, body: 'Check missing workspace names' },
replies: [{ id: 12, body: 'Include older remote hosts' }]
},
{ kind: 'standalone', comment: { id: 13, body: 'Check cleanup sorting' } }
])
})