Files
ycode/scripts/workbench-escape-regression.ts
T

40 lines
1.2 KiB
TypeScript

import assert from 'node:assert/strict'
import { resolveWorkbenchEscapeAction } from '../src/renderer/src/workbuddy/workbench/escape-action'
assert.equal(resolveWorkbenchEscapeAction({
key: 'Escape',
isComposing: true,
menuOpen: false,
fullscreen: true
}), 'none', 'IME composition must keep Escape inside the editor')
assert.equal(resolveWorkbenchEscapeAction({
key: 'Escape',
isComposing: false,
menuOpen: true,
fullscreen: true
}), 'close-menu', 'an open workbench popup consumes Escape before fullscreen handling')
assert.equal(resolveWorkbenchEscapeAction({
key: 'Escape',
isComposing: false,
menuOpen: false,
fullscreen: true
}), 'exit-fullscreen', 'fullscreen workbench Escape exits fullscreen')
assert.equal(resolveWorkbenchEscapeAction({
key: 'Escape',
isComposing: false,
menuOpen: false,
fullscreen: false
}), 'none', 'normal Escape remains available to the application generation shortcut')
assert.equal(resolveWorkbenchEscapeAction({
key: 'Enter',
isComposing: false,
menuOpen: true,
fullscreen: true
}), 'none', 'non-Escape keys are not consumed by fullscreen handling')
console.log('workbench-escape-regression: all checks passed')