40 lines
1.2 KiB
TypeScript
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')
|