From a3850fa4fc9fa87ba34a46ad9879575bb9cb83e9 Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Wed, 9 Oct 2024 12:07:00 +0200 Subject: [PATCH] fix tests --- .../tests/clipboard.DataGridPremium.test.tsx | 6 +-- .../tests/cellEditing.DataGridPro.test.tsx | 8 ++-- .../src/tests/rowEditing.DataGridPro.test.tsx | 6 +-- .../rowSelection/useGridRowSelection.ts | 2 +- ...editing.SingleInputDateRangeField.test.tsx | 18 +++------ .../tests/editing.DateField.test.tsx | 39 +++++++------------ .../tests/selection.DateField.test.tsx | 12 ++---- .../tests/editing.TimeField.test.tsx | 3 +- .../useTreeViewKeyboardNavigation.test.tsx | 18 +++++++-- .../useTreeViewKeyboardNavigation.ts | 9 +++-- .../src/useTreeItem2/useTreeItem2.test.tsx | 1 + 11 files changed, 57 insertions(+), 65 deletions(-) diff --git a/packages/x-data-grid-premium/src/tests/clipboard.DataGridPremium.test.tsx b/packages/x-data-grid-premium/src/tests/clipboard.DataGridPremium.test.tsx index b0c31797af376..3b4c67048c675 100644 --- a/packages/x-data-grid-premium/src/tests/clipboard.DataGridPremium.test.tsx +++ b/packages/x-data-grid-premium/src/tests/clipboard.DataGridPremium.test.tsx @@ -184,7 +184,7 @@ describe(' - Clipboard', () => { getData: () => pasteText, }; - fireEvent.keyDown(cell, { key: 'v', code: 'KeyV', keyCode: 86, ctrlKey: true }); // Ctrl+V + fireEvent.keyDown(cell, { key: 'v', keyCode: 86, ctrlKey: true }); // Ctrl+V document.activeElement!.dispatchEvent(pasteEvent); } @@ -196,7 +196,7 @@ describe(' - Clipboard', () => { apiRef.current.subscribeEvent('cellEditStart', listener); const cell = getCell(0, 1); fireUserEvent.mousePress(cell); - fireEvent.keyDown(cell, { key: 'v', code: 'KeyV', keyCode: 86, [key]: true }); // Ctrl+V + fireEvent.keyDown(cell, { key: 'v', keyCode: 86, [key]: true }); // Ctrl+V expect(listener.callCount).to.equal(0); }); }); @@ -209,7 +209,7 @@ describe(' - Clipboard', () => { apiRef.current.subscribeEvent('rowEditStart', listener); const cell = getCell(0, 1); fireUserEvent.mousePress(cell); - fireEvent.keyDown(cell, { key: 'v', code: 'KeyV', keyCode: 86, [key]: true }); // Ctrl+V + fireEvent.keyDown(cell, { key: 'v', keyCode: 86, [key]: true }); // Ctrl+V expect(listener.callCount).to.equal(0); }); }); diff --git a/packages/x-data-grid-pro/src/tests/cellEditing.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/cellEditing.DataGridPro.test.tsx index 65292381e5fd9..b86470859ce5e 100644 --- a/packages/x-data-grid-pro/src/tests/cellEditing.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/cellEditing.DataGridPro.test.tsx @@ -890,7 +890,7 @@ describe(' - Cell editing', () => { apiRef.current.subscribeEvent('cellEditStart', listener); const cell = getCell(0, 0); fireUserEvent.mousePress(cell); - fireEvent.keyDown(cell, { key: 'a' }); // A + fireEvent.keyDown(cell, { key: 'a', keyCode: 65 }); // A expect(listener.callCount).to.equal(0); }); @@ -901,7 +901,7 @@ describe(' - Cell editing', () => { apiRef.current.subscribeEvent('cellEditStart', listener); const cell = getCell(0, 1); fireUserEvent.mousePress(cell); - fireEvent.keyDown(cell, { key: 'a', [key]: true }); // for example Ctrl + A, copy + fireEvent.keyDown(cell, { key: 'a', keyCode: 65, [key]: true }); // for example Ctrl + A, copy expect(listener.callCount).to.equal(0); }); }); @@ -912,7 +912,7 @@ describe(' - Cell editing', () => { apiRef.current.subscribeEvent('cellEditStart', listener); const cell = getCell(0, 1); fireUserEvent.mousePress(cell); - fireEvent.keyDown(cell, { key: 'a', shiftKey: true }); // Print A in uppercase + fireEvent.keyDown(cell, { key: 'a', keyCode: 65, shiftKey: true }); // Print A in uppercase expect(listener.callCount).to.equal(1); }); @@ -922,7 +922,7 @@ describe(' - Cell editing', () => { apiRef.current.subscribeEvent('cellEditStart', listener); const cell = getCell(0, 1); fireUserEvent.mousePress(cell); - fireEvent.keyDown(cell, { key: 'v', code: 'KeyV', keyCode: 86, ctrlKey: true }); // Ctrl+V + fireEvent.keyDown(cell, { key: 'v', keyCode: 86, ctrlKey: true }); // Ctrl+V expect(listener.callCount).to.equal(1); }); diff --git a/packages/x-data-grid-pro/src/tests/rowEditing.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/rowEditing.DataGridPro.test.tsx index d9fdb1d8f65ca..56894a1d406c4 100644 --- a/packages/x-data-grid-pro/src/tests/rowEditing.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/rowEditing.DataGridPro.test.tsx @@ -874,7 +874,7 @@ describe(' - Row editing', () => { apiRef.current.subscribeEvent('rowEditStart', listener); const cell = getCell(0, 1); fireUserEvent.mousePress(cell); - fireEvent.keyDown(cell, { key: 'a', [key]: true }); + fireEvent.keyDown(cell, { key: 'a', keyCode: 65, [key]: true }); expect(listener.callCount).to.equal(0); }); }); @@ -885,7 +885,7 @@ describe(' - Row editing', () => { apiRef.current.subscribeEvent('rowEditStart', listener); const cell = getCell(0, 1); fireUserEvent.mousePress(cell); - fireEvent.keyDown(cell, { key: 'a', shiftKey: true }); + fireEvent.keyDown(cell, { key: 'a', keyCode: 65, shiftKey: true }); expect(listener.callCount).to.equal(1); }); @@ -905,7 +905,7 @@ describe(' - Row editing', () => { apiRef.current.subscribeEvent('rowEditStart', listener); const cell = getCell(0, 1); fireUserEvent.mousePress(cell); - fireEvent.keyDown(cell, { key: 'v', code: 'KeyV', keyCode: 86, ctrlKey: true }); + fireEvent.keyDown(cell, { key: 'v', keyCode: 86, ctrlKey: true }); expect(listener.callCount).to.equal(1); }); diff --git a/packages/x-data-grid/src/hooks/features/rowSelection/useGridRowSelection.ts b/packages/x-data-grid/src/hooks/features/rowSelection/useGridRowSelection.ts index d50883fa5c366..9586053329947 100644 --- a/packages/x-data-grid/src/hooks/features/rowSelection/useGridRowSelection.ts +++ b/packages/x-data-grid/src/hooks/features/rowSelection/useGridRowSelection.ts @@ -673,7 +673,7 @@ export const useGridRowSelection = ( return; } - if (event.key === 'a' && (event.ctrlKey || event.metaKey)) { + if (String.fromCharCode(event.keyCode) === 'A' && (event.ctrlKey || event.metaKey)) { event.preventDefault(); selectRows(apiRef.current.getAllRowIds(), true); } diff --git a/packages/x-date-pickers-pro/src/SingleInputDateRangeField/tests/editing.SingleInputDateRangeField.test.tsx b/packages/x-date-pickers-pro/src/SingleInputDateRangeField/tests/editing.SingleInputDateRangeField.test.tsx index 901cd1983c450..d325d56d82aff 100644 --- a/packages/x-date-pickers-pro/src/SingleInputDateRangeField/tests/editing.SingleInputDateRangeField.test.tsx +++ b/packages/x-date-pickers-pro/src/SingleInputDateRangeField/tests/editing.SingleInputDateRangeField.test.tsx @@ -24,7 +24,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -45,7 +44,7 @@ describe(' - Editing', () => { view.selectSection('month'); // Select all sections - fireEvent.keyDown(input, { key: 'a', code: 'KeyQ', keyCode: 65, ctrlKey: true }); + fireEvent.keyDown(input, { key: 'a', keyCode: 65, ctrlKey: true }); fireEvent.keyDown(input, { key: 'Delete' }); expectFieldValueV6(input, 'MMMM YYYY – MMMM YYYY'); @@ -67,7 +66,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -93,7 +91,7 @@ describe(' - Editing', () => { expectFieldValueV6(input, 'January YYYY – MMMM YYYY'); // Select all sections - fireEvent.keyDown(input, { key: 'a', code: 'KeyQ', keyCode: 65, ctrlKey: true }); + fireEvent.keyDown(input, { key: 'a', keyCode: 65, ctrlKey: true }); fireEvent.keyDown(input, { key: 'Delete' }); expectFieldValueV6(input, 'MMMM YYYY – MMMM YYYY'); @@ -114,7 +112,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -137,7 +134,7 @@ describe(' - Editing', () => { view.selectSection('month'); // Select all sections - fireEvent.keyDown(input, { key: 'a', code: 'KeyQ', keyCode: 65, ctrlKey: true }); + fireEvent.keyDown(input, { key: 'a', keyCode: 65, ctrlKey: true }); fireEvent.keyDown(input, { key: 'Delete' }); expect(onChangeV6.callCount).to.equal(0); @@ -279,7 +276,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -300,7 +296,7 @@ describe(' - Editing', () => { view.selectSection('month'); // Select all sections - fireEvent.keyDown(input, { key: 'a', code: 'KeyQ', keyCode: 65, ctrlKey: true }); + fireEvent.keyDown(input, { key: 'a', keyCode: 65, ctrlKey: true }); fireEvent.change(input, { target: { value: '' } }); expectFieldValueV6(input, 'MMMM YYYY – MMMM YYYY'); @@ -322,7 +318,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -348,7 +343,7 @@ describe(' - Editing', () => { expectFieldValueV6(input, 'January YYYY – MMMM YYYY'); // Select all sections - fireEvent.keyDown(input, { key: 'a', code: 'KeyQ', keyCode: 65, ctrlKey: true }); + fireEvent.keyDown(input, { key: 'a', keyCode: 65, ctrlKey: true }); fireEvent.change(input, { target: { value: '' } }); expectFieldValueV6(input, 'MMMM YYYY – MMMM YYYY'); @@ -369,7 +364,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -392,7 +386,7 @@ describe(' - Editing', () => { view.selectSection('month'); // Select all sections - fireEvent.keyDown(input, { key: 'a', code: 'KeyQ', keyCode: 65, ctrlKey: true }); + fireEvent.keyDown(input, { key: 'a', keyCode: 65, ctrlKey: true }); fireEvent.change(input, { target: { value: 'Delete' } }); expect(onChangeV6.callCount).to.equal(0); diff --git a/packages/x-date-pickers/src/DateField/tests/editing.DateField.test.tsx b/packages/x-date-pickers/src/DateField/tests/editing.DateField.test.tsx index 8d8c5bef699bf..fafafc44a61e5 100644 --- a/packages/x-date-pickers/src/DateField/tests/editing.DateField.test.tsx +++ b/packages/x-date-pickers/src/DateField/tests/editing.DateField.test.tsx @@ -271,7 +271,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -292,7 +291,7 @@ describe(' - Editing', () => { view.selectSection('month'); // Select all sections - fireUserEvent.keyPress(input, { key: 'a', ctrlKey: true }); + fireUserEvent.keyPress(input, { key: 'a', keyCode: 65, ctrlKey: true }); fireUserEvent.keyPress(input, { key: 'Delete' }); expectFieldValueV6(input, 'MMMM YYYY'); @@ -314,7 +313,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -340,7 +338,7 @@ describe(' - Editing', () => { expectFieldValueV6(input, 'January YYYY'); // Select all sections - fireUserEvent.keyPress(input, { key: 'a', ctrlKey: true }); + fireUserEvent.keyPress(input, { key: 'a', keyCode: 65, ctrlKey: true }); fireUserEvent.keyPress(input, { key: 'Delete' }); expectFieldValueV6(input, 'MMMM YYYY'); @@ -410,7 +408,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -433,7 +430,7 @@ describe(' - Editing', () => { view.selectSection('month'); // Select all sections - fireUserEvent.keyPress(input, { key: 'a', ctrlKey: true }); + fireUserEvent.keyPress(input, { key: 'a', keyCode: 65, ctrlKey: true }); fireUserEvent.keyPress(input, { key: 'Delete' }); expect(onChangeV6.callCount).to.equal(0); @@ -1223,7 +1220,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -1244,7 +1240,7 @@ describe(' - Editing', () => { view.selectSection('month'); // Select all sections - fireEvent.keyDown(input, { key: 'a', code: 'KeyQ', keyCode: 65, ctrlKey: true }); + fireEvent.keyDown(input, { key: 'a', keyCode: 65, ctrlKey: true }); fireEvent.change(input, { target: { value: '' } }); expectFieldValueV6(input, 'MMMM YYYY'); @@ -1264,7 +1260,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -1286,7 +1281,7 @@ describe(' - Editing', () => { expectFieldValueV6(input, 'January YYYY'); // Select all sections - fireEvent.keyDown(input, { key: 'a', code: 'KeyQ', keyCode: 65, ctrlKey: true }); + fireEvent.keyDown(input, { key: 'a', keyCode: 65, ctrlKey: true }); fireEvent.change(input, { target: { value: '' } }); expectFieldValueV6(input, 'MMMM YYYY'); @@ -1460,7 +1455,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -1483,7 +1477,7 @@ describe(' - Editing', () => { view.selectSection('month'); // Select all sections - fireUserEvent.keyPress(input, { key: 'a', ctrlKey: true }); + fireUserEvent.keyPress(input, { key: 'a', keyCode: 65, ctrlKey: true }); firePasteEventV6(input, '09/16/2022'); @@ -1503,7 +1497,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -1524,7 +1517,7 @@ describe(' - Editing', () => { view.selectSection('month'); // Select all sections - fireUserEvent.keyPress(input, { key: 'a', ctrlKey: true }); + fireUserEvent.keyPress(input, { key: 'a', keyCode: 65, ctrlKey: true }); firePasteEventV6(input, '09/16/2022'); @@ -1544,7 +1537,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -1563,7 +1555,7 @@ describe(' - Editing', () => { view.selectSection('month'); // Select all sections - fireUserEvent.keyPress(input, { key: 'a', ctrlKey: true }); + fireUserEvent.keyPress(input, { key: 'a', keyCode: 65, ctrlKey: true }); firePasteEventV6(input, 'Some invalid content'); expectFieldValueV6(input, 'MM/DD/YYYY'); @@ -1585,7 +1577,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -1607,7 +1598,7 @@ describe(' - Editing', () => { view.selectSection('year'); // Select all sections - fireUserEvent.keyPress(input, { key: 'a', ctrlKey: true }); + fireUserEvent.keyPress(input, { key: 'a', keyCode: 65, ctrlKey: true }); firePasteEventV6(input, `Escaped 2014`); expect(onChangeV6.callCount).to.equal(1); @@ -1629,7 +1620,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -1652,7 +1642,7 @@ describe(' - Editing', () => { view.selectSection('month'); // Select all sections - fireUserEvent.keyPress(input, { key: 'a', ctrlKey: true }); + fireUserEvent.keyPress(input, { key: 'a', keyCode: 65, ctrlKey: true }); firePasteEventV6(input, '09/16/2022'); expect(onChangeV6.callCount).to.equal(0); @@ -1784,7 +1774,7 @@ describe(' - Editing', () => { expectFieldValueV7(view.getSectionsContainer(), '12/02/2018'); // Select all sections - fireEvent.keyDown(view.getActiveSection(1), { key: 'a', ctrlKey: true }); + fireEvent.keyDown(view.getActiveSection(1), { key: 'a', keyCode: 65, ctrlKey: true }); firePasteEventV7(view.getSectionsContainer(), '09/16/2022'); expectFieldValueV7(view.getSectionsContainer(), '09/16/2022'); @@ -1868,7 +1858,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -1941,7 +1930,6 @@ describe(' - Editing', () => { view.selectSection('month'); fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -1979,7 +1967,7 @@ describe(' - Editing', () => { const input = getTextbox(); view.selectSection('month'); - fireUserEvent.keyPress(input, { key: 'a', ctrlKey: true }); + fireUserEvent.keyPress(input, { key: 'a', keyCode: 65, ctrlKey: true }); fireEvent.change(input, { target: { value: '' } }); fireUserEvent.keyPress(input, { key: 'ArrowLeft' }); @@ -2332,7 +2320,6 @@ describe(' - Editing', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -2350,7 +2337,7 @@ describe(' - Editing', () => { const input = getTextbox(); // Select all sections - fireUserEvent.keyPress(input, { key: 'a', ctrlKey: true }); + fireUserEvent.keyPress(input, { key: 'a', keyCode: 65, ctrlKey: true }); // When all sections are selected, the value only contains the key pressed fireEvent.change(input, { target: { value: '9' } }); diff --git a/packages/x-date-pickers/src/DateField/tests/selection.DateField.test.tsx b/packages/x-date-pickers/src/DateField/tests/selection.DateField.test.tsx index 62c6f4acb6aea..6ef20dec53f36 100644 --- a/packages/x-date-pickers/src/DateField/tests/selection.DateField.test.tsx +++ b/packages/x-date-pickers/src/DateField/tests/selection.DateField.test.tsx @@ -172,7 +172,6 @@ describe(' - Selection', () => { view.selectSection('month'); fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -184,7 +183,7 @@ describe(' - Selection', () => { view = renderWithProps({ enableAccessibleFieldDOMStructure: false }); const input = getTextbox(); view.selectSection('month'); - fireEvent.keyDown(input, { key: 'a', code: 'KeyQ', keyCode: 65, ctrlKey: true }); + fireEvent.keyDown(input, { key: 'a', keyCode: 65, ctrlKey: true }); expect(getCleanedSelectedContent()).to.equal('MM/DD/YYYY'); }); @@ -197,7 +196,6 @@ describe(' - Selection', () => { view.selectSection('year'); fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -212,7 +210,7 @@ describe(' - Selection', () => { }); const input = getTextbox(); view.selectSection('year'); - fireEvent.keyDown(input, { key: 'a', code: 'KeyQ', keyCode: 65, ctrlKey: true }); + fireEvent.keyDown(input, { key: 'a', keyCode: 65, ctrlKey: true }); expect(getCleanedSelectedContent()).to.equal('- YYYY'); }); }); @@ -262,7 +260,6 @@ describe(' - Selection', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -279,7 +276,7 @@ describe(' - Selection', () => { view.selectSection('month'); // Select all sections - fireEvent.keyDown(input, { key: 'a', code: 'KeyQ', keyCode: 65, ctrlKey: true }); + fireEvent.keyDown(input, { key: 'a', keyCode: 65, ctrlKey: true }); expect(getCleanedSelectedContent()).to.equal('MM/DD/YYYY'); fireEvent.keyDown(input, { key: 'ArrowRight' }); @@ -332,7 +329,6 @@ describe(' - Selection', () => { // Select all sections fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -349,7 +345,7 @@ describe(' - Selection', () => { view.selectSection('month'); // Select all sections - fireEvent.keyDown(input, { key: 'a', code: 'KeyQ', keyCode: 65, ctrlKey: true }); + fireEvent.keyDown(input, { key: 'a', keyCode: 65, ctrlKey: true }); expect(getCleanedSelectedContent()).to.equal('MM/DD/YYYY'); fireEvent.keyDown(input, { key: 'ArrowLeft' }); diff --git a/packages/x-date-pickers/src/TimeField/tests/editing.TimeField.test.tsx b/packages/x-date-pickers/src/TimeField/tests/editing.TimeField.test.tsx index ffd00f4e201f0..f1c4c0811bd37 100644 --- a/packages/x-date-pickers/src/TimeField/tests/editing.TimeField.test.tsx +++ b/packages/x-date-pickers/src/TimeField/tests/editing.TimeField.test.tsx @@ -681,7 +681,6 @@ describe(' - Editing', () => { view.selectSection('hours'); fireEvent.keyDown(view.getActiveSection(0), { key: 'a', - code: 'KeyQ', keyCode: 65, ctrlKey: true, }); @@ -709,7 +708,7 @@ describe(' - Editing', () => { const input = getTextbox(); view.selectSection('hours'); - fireEvent.keyDown(input, { key: 'a', code: 'KeyQ', keyCode: 65, ctrlKey: true }); + fireEvent.keyDown(input, { key: 'a', keyCode: 65, ctrlKey: true }); fireEvent.change(input, { target: { value: '' } }); fireEvent.keyDown(input, { key: 'ArrowLeft' }); diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.test.tsx b/packages/x-tree-view/src/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.test.tsx index 7dab02bcf8b2b..2db89b9501b1c 100644 --- a/packages/x-tree-view/src/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.test.tsx +++ b/packages/x-tree-view/src/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.test.tsx @@ -1044,7 +1044,11 @@ describeTreeView< act(() => { view.getItemRoot('1').focus(); }); - fireEvent.keyDown(view.getItemRoot('1'), { key: 'a', ctrlKey: true }); + fireEvent.keyDown(view.getItemRoot('1'), { + key: 'a', + keyCode: 65, + ctrlKey: true, + }); expect(view.getSelectedTreeItems()).to.deep.equal(['1', '2', '3', '4']); }); @@ -1058,7 +1062,11 @@ describeTreeView< act(() => { view.getItemRoot('1').focus(); }); - fireEvent.keyDown(view.getItemRoot('1'), { key: 'a', ctrlKey: true }); + fireEvent.keyDown(view.getItemRoot('1'), { + key: 'a', + keyCode: 65, + ctrlKey: true, + }); expect(view.getSelectedTreeItems()).to.deep.equal([]); }); @@ -1076,7 +1084,11 @@ describeTreeView< act(() => { view.getItemRoot('1').focus(); }); - fireEvent.keyDown(view.getItemRoot('1'), { key: 'a', ctrlKey: true }); + fireEvent.keyDown(view.getItemRoot('1'), { + key: 'a', + keyCode: 65, + ctrlKey: true, + }); expect(view.getSelectedTreeItems()).to.deep.equal(['1', '3', '4']); }); }); diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.ts b/packages/x-tree-view/src/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.ts index 88bad3cccb212..5b2739b6f9887 100644 --- a/packages/x-tree-view/src/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.ts +++ b/packages/x-tree-view/src/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.ts @@ -16,7 +16,7 @@ import { import { hasPlugin } from '../../utils/plugins'; import { useTreeViewLabel } from '../useTreeViewLabel'; -function isPrintableCharacter(string: string) { +function isPrintableKey(string: string) { return !!string && string.length === 1 && !!string.match(/\S/); } @@ -256,7 +256,10 @@ export const useTreeViewKeyboardNavigation: TreeViewPlugin< // Multi select behavior when pressing Ctrl + a // Selects all the items - case key === 'a' && ctrlPressed && params.multiSelect && !params.disableSelection: { + case String.fromCharCode(event.keyCode) === 'A' && + ctrlPressed && + params.multiSelect && + !params.disableSelection: { instance.selectAllNavigableItems(event); event.preventDefault(); break; @@ -264,7 +267,7 @@ export const useTreeViewKeyboardNavigation: TreeViewPlugin< // Type-ahead // TODO: Support typing multiple characters - case !ctrlPressed && !event.shiftKey && isPrintableCharacter(key): { + case !ctrlPressed && !event.shiftKey && isPrintableKey(key): { const matchingItem = getFirstMatchingItem(itemId, key); if (matchingItem != null) { instance.focusItem(event, matchingItem); diff --git a/packages/x-tree-view/src/useTreeItem2/useTreeItem2.test.tsx b/packages/x-tree-view/src/useTreeItem2/useTreeItem2.test.tsx index 8dc7de297623a..51e07dcabc5ab 100644 --- a/packages/x-tree-view/src/useTreeItem2/useTreeItem2.test.tsx +++ b/packages/x-tree-view/src/useTreeItem2/useTreeItem2.test.tsx @@ -100,6 +100,7 @@ describeTreeView<[UseTreeViewExpansionSignature, UseTreeViewIconsSignature]>( const input = view.getItemRoot('1.1').querySelector('.icon-input')!; const keydownEvent = createEvent.keyDown(input, { key: 'a', + keyCode: 65, }); const handlePreventDefault = spy();