@@ -453,26 +453,86 @@ describe('KittyKeyboard', () => {
453453 describe ( 'event types (press/repeat/release)' , ( ) => {
454454 const flags = KittyKeyboardFlags . DISAMBIGUATE_ESCAPE_CODES | KittyKeyboardFlags . REPORT_EVENT_TYPES ;
455455
456- it ( 'press event (default, no suffix) ' , ( ) => {
456+ it ( 'UTF-8 text press event ' , ( ) => {
457457 const result = kitty . evaluate ( createEvent ( { key : 'a' } ) , flags , KittyKeyboardEventType . PRESS ) ;
458- assert . strictEqual ( result . key , '\x1b[97u' ) ;
458+ assert . strictEqual ( result . key , 'a' ) ;
459+ } ) ;
460+
461+ it ( 'Escape key press event (default, no suffix)' , ( ) => {
462+ const result = kitty . evaluate ( createEvent ( { key : 'Escape' } ) , flags , KittyKeyboardEventType . PRESS ) ;
463+ assert . strictEqual ( result . key , '\x1b[27u' ) ;
464+ } ) ;
465+
466+ it ( 'Enter key press event → legacy \\r' , ( ) => {
467+ const result = kitty . evaluate ( createEvent ( { key : 'Enter' } ) , flags , KittyKeyboardEventType . PRESS ) ;
468+ assert . strictEqual ( result . key , '\r' ) ;
469+ } ) ;
470+
471+ it ( 'Tab key press event → legacy \\t' , ( ) => {
472+ const result = kitty . evaluate ( createEvent ( { key : 'Tab' } ) , flags , KittyKeyboardEventType . PRESS ) ;
473+ assert . strictEqual ( result . key , '\t' ) ;
474+ } ) ;
475+
476+ it ( 'Backspace key press event → legacy \\x7f' , ( ) => {
477+ const result = kitty . evaluate ( createEvent ( { key : 'Backspace' } ) , flags , KittyKeyboardEventType . PRESS ) ;
478+ assert . strictEqual ( result . key , '\x7f' ) ;
459479 } ) ;
460480
461481 it ( 'press event explicit :1 when modifiers present' , ( ) => {
462482 const result = kitty . evaluate ( createEvent ( { key : 'a' , ctrlKey : true } ) , flags , KittyKeyboardEventType . PRESS ) ;
463483 assert . strictEqual ( result . key , '\x1b[97;5u' ) ;
464484 } ) ;
465485
466- it ( 'repeat event → :2 suffix ' , ( ) => {
486+ it ( 'UTF-8 text repeat event ' , ( ) => {
467487 const result = kitty . evaluate ( createEvent ( { key : 'a' } ) , flags , KittyKeyboardEventType . REPEAT ) ;
468- assert . strictEqual ( result . key , '\x1b[97;1:2u' ) ;
488+ assert . strictEqual ( result . key , 'a' ) ;
489+ } ) ;
490+
491+ it ( 'Escape key repeat event → :2 suffix' , ( ) => {
492+ const result = kitty . evaluate ( createEvent ( { key : 'Escape' } ) , flags , KittyKeyboardEventType . REPEAT ) ;
493+ assert . strictEqual ( result . key , '\x1b[27;1:2u' ) ;
494+ } ) ;
495+
496+ it ( 'Enter key repeat event → legacy \\r' , ( ) => {
497+ const result = kitty . evaluate ( createEvent ( { key : 'Enter' } ) , flags , KittyKeyboardEventType . REPEAT ) ;
498+ assert . strictEqual ( result . key , '\r' ) ;
499+ } ) ;
500+
501+ it ( 'Tab key repeat event → legacy \\t' , ( ) => {
502+ const result = kitty . evaluate ( createEvent ( { key : 'Tab' } ) , flags , KittyKeyboardEventType . REPEAT ) ;
503+ assert . strictEqual ( result . key , '\t' ) ;
504+ } ) ;
505+
506+ it ( 'Backspace key repeat event → legacy \\x7f' , ( ) => {
507+ const result = kitty . evaluate ( createEvent ( { key : 'Backspace' } ) , flags , KittyKeyboardEventType . REPEAT ) ;
508+ assert . strictEqual ( result . key , '\x7f' ) ;
469509 } ) ;
470510
471511 it ( 'release event → :3 suffix' , ( ) => {
472512 const result = kitty . evaluate ( createEvent ( { key : 'a' } ) , flags , KittyKeyboardEventType . RELEASE ) ;
473513 assert . strictEqual ( result . key , '\x1b[97;1:3u' ) ;
474514 } ) ;
475515
516+ it ( 'Escape key release event → :3 suffix' , ( ) => {
517+ const result = kitty . evaluate ( createEvent ( { key : 'Escape' } ) , flags , KittyKeyboardEventType . RELEASE ) ;
518+ assert . strictEqual ( result . key , '\x1b[27;1:3u' ) ;
519+ } ) ;
520+
521+ it ( 'Enter key release event is not reported' , ( ) => {
522+ const result = kitty . evaluate ( createEvent ( { key : 'Enter' } ) , flags , KittyKeyboardEventType . RELEASE ) ;
523+ assert . strictEqual ( result . key , undefined ) ;
524+ } ) ;
525+
526+ it ( 'Tab key release event is not reported' , ( ) => {
527+ const result = kitty . evaluate ( createEvent ( { key : 'Tab' } ) , flags , KittyKeyboardEventType . RELEASE ) ;
528+ assert . strictEqual ( result . key , undefined ) ;
529+ } ) ;
530+
531+ it ( 'Backspace key release event is not reported' , ( ) => {
532+ const result = kitty . evaluate ( createEvent ( { key : 'Backspace' } ) , flags , KittyKeyboardEventType . RELEASE ) ;
533+ assert . strictEqual ( result . key , undefined ) ;
534+ } ) ;
535+
476536 it ( 'release with modifier → mod:3' , ( ) => {
477537 const result = kitty . evaluate ( createEvent ( { key : 'a' , ctrlKey : true } ) , flags , KittyKeyboardEventType . RELEASE ) ;
478538 assert . strictEqual ( result . key , '\x1b[97;5:3u' ) ;
0 commit comments