Skip to content

Commit ee0a3de

Browse files
authored
Merge pull request #5349 from xtermjs/copilot/fix-3382
Add comprehensive tests for alt+shift+letter keyboard combinations
2 parents 4b6316e + 076f051 commit ee0a3de

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/common/input/Keyboard.test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,19 @@ describe('Keyboard', () => {
336336
assert.equal(testEvaluateKeyboardEvent({ shiftKey: true, keyCode: 49, key: '!' }).key, '!');
337337
});
338338

339+
// Characters using alt+shift sequences (letters)
340+
it('should return proper sequences for alt+shift+letter combinations', () => {
341+
// Test alt+shift combinations produce uppercase letters
342+
assert.equal(testEvaluateKeyboardEvent({ altKey: true, shiftKey: true, keyCode: 65 }).key, '\x1bA'); // alt+shift+a
343+
assert.equal(testEvaluateKeyboardEvent({ altKey: true, shiftKey: true, keyCode: 72 }).key, '\x1bH'); // alt+shift+h
344+
assert.equal(testEvaluateKeyboardEvent({ altKey: true, shiftKey: true, keyCode: 90 }).key, '\x1bZ'); // alt+shift+z
345+
346+
// Test alt without shift produces lowercase letters
347+
assert.equal(testEvaluateKeyboardEvent({ altKey: true, shiftKey: false, keyCode: 65 }).key, '\x1ba'); // alt+a
348+
assert.equal(testEvaluateKeyboardEvent({ altKey: true, shiftKey: false, keyCode: 72 }).key, '\x1bh'); // alt+h
349+
assert.equal(testEvaluateKeyboardEvent({ altKey: true, shiftKey: false, keyCode: 90 }).key, '\x1bz'); // alt+z
350+
});
351+
339352
it('should return proper sequence for ctrl+@', () => {
340353
assert.equal(testEvaluateKeyboardEvent({ ctrlKey: true, shiftKey: true, keyCode: 50, key: '@' }).key, '\x00');
341354
});

0 commit comments

Comments
 (0)