mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-17 05:45:51 +00:00
源码(src/workflow/ + packages/workflow-engine/src/)的中文注释、 用户可见错误消息、字符串字面量;测试文件的标题与注释;同步 6 条 硬编码断言到英文化后的错误消息。 Co-Authored-By: glm-5.2 <zai-org@claude-code-best.win>
46 lines
2.1 KiB
TypeScript
46 lines
2.1 KiB
TypeScript
import { expect, test } from 'bun:test'
|
||
import { routeWorkflowKey } from '../panel/useWorkflowKeyboard.js'
|
||
|
||
test('Tab → nextTab;Shift+Tab → prevTab', () => {
|
||
expect(routeWorkflowKey('', { tab: true })).toBe('nextTab')
|
||
expect(routeWorkflowKey('', { tab: true, shift: true })).toBe('prevTab')
|
||
})
|
||
|
||
test('q / Esc → quit', () => {
|
||
expect(routeWorkflowKey('q', {})).toBe('quit')
|
||
expect(routeWorkflowKey('', { escape: true })).toBe('quit')
|
||
})
|
||
|
||
test('x → killAgent;K → killWorkflow;r → resume;n → newRun', () => {
|
||
expect(routeWorkflowKey('x', {})).toBe('killAgent')
|
||
expect(routeWorkflowKey('K', {})).toBe('killWorkflow')
|
||
expect(routeWorkflowKey('r', {})).toBe('resume')
|
||
expect(routeWorkflowKey('n', {})).toBe('newRun')
|
||
})
|
||
|
||
test('confirm mode: y/Enter → confirmYes; n/Esc/q → confirmNo; other keys → null', () => {
|
||
expect(routeWorkflowKey('y', {}, 'confirm')).toBe('confirmYes')
|
||
expect(routeWorkflowKey('Y', {}, 'confirm')).toBe('confirmYes')
|
||
expect(routeWorkflowKey('', { return: true }, 'confirm')).toBe('confirmYes')
|
||
expect(routeWorkflowKey('n', {}, 'confirm')).toBe('confirmNo')
|
||
expect(routeWorkflowKey('N', {}, 'confirm')).toBe('confirmNo')
|
||
expect(routeWorkflowKey('', { escape: true }, 'confirm')).toBe('confirmNo')
|
||
expect(routeWorkflowKey('q', {}, 'confirm')).toBe('confirmNo')
|
||
// confirm mode swallows navigation/edit keys, preventing accidental triggers
|
||
expect(routeWorkflowKey('x', {}, 'confirm')).toBeNull()
|
||
expect(routeWorkflowKey('', { tab: true }, 'confirm')).toBeNull()
|
||
expect(routeWorkflowKey('', { upArrow: true }, 'confirm')).toBeNull()
|
||
})
|
||
|
||
test('←/→ switch focus column; ↑/↓ move within column', () => {
|
||
expect(routeWorkflowKey('', { leftArrow: true })).toBe('focusLeft')
|
||
expect(routeWorkflowKey('', { rightArrow: true })).toBe('focusRight')
|
||
expect(routeWorkflowKey('', { upArrow: true })).toBe('moveUp')
|
||
expect(routeWorkflowKey('', { downArrow: true })).toBe('moveDown')
|
||
})
|
||
|
||
test('unrelated input → null', () => {
|
||
expect(routeWorkflowKey('z', {})).toBeNull()
|
||
expect(routeWorkflowKey('', {})).toBeNull()
|
||
})
|