@@ -449,6 +449,41 @@ describe('SpinButton', () => {
449449 fixture . detectChanges ( ) ;
450450 expect ( spinButtonInstance . value ( ) ) . toBe ( - 5 ) ;
451451 } ) ;
452+
453+ it ( 'should allow numeric key input without preventing default' , ( ) => {
454+ setupSpinButton ( { value : 5 } ) ;
455+ const event = new KeyboardEvent ( 'keydown' , { key : '3' , bubbles : true } ) ;
456+ inputElement . dispatchEvent ( event ) ;
457+ expect ( event . defaultPrevented ) . toBe ( false ) ;
458+ } ) ;
459+
460+ it ( 'should allow backspace key without preventing default' , ( ) => {
461+ setupSpinButton ( { value : 5 } ) ;
462+ const event = new KeyboardEvent ( 'keydown' , { key : 'Backspace' , bubbles : true } ) ;
463+ inputElement . dispatchEvent ( event ) ;
464+ expect ( event . defaultPrevented ) . toBe ( false ) ;
465+ } ) ;
466+
467+ it ( 'should allow delete key without preventing default' , ( ) => {
468+ setupSpinButton ( { value : 5 } ) ;
469+ const event = new KeyboardEvent ( 'keydown' , { key : 'Delete' , bubbles : true } ) ;
470+ inputElement . dispatchEvent ( event ) ;
471+ expect ( event . defaultPrevented ) . toBe ( false ) ;
472+ } ) ;
473+
474+ it ( 'should allow tab key without preventing default' , ( ) => {
475+ setupSpinButton ( { value : 5 } ) ;
476+ const event = new KeyboardEvent ( 'keydown' , { key : 'Tab' , bubbles : true } ) ;
477+ inputElement . dispatchEvent ( event ) ;
478+ expect ( event . defaultPrevented ) . toBe ( false ) ;
479+ } ) ;
480+
481+ it ( 'should allow minus key for negative numbers' , ( ) => {
482+ setupSpinButton ( { value : 5 } ) ;
483+ const event = new KeyboardEvent ( 'keydown' , { key : '-' , bubbles : true } ) ;
484+ inputElement . dispatchEvent ( event ) ;
485+ expect ( event . defaultPrevented ) . toBe ( false ) ;
486+ } ) ;
452487 } ) ;
453488
454489 describe ( 'span-based spinbutton' , ( ) => {
0 commit comments