@@ -3,6 +3,7 @@ import { test } from "../../setup/setupScript.js";
33import { BASE_URL , TABLE_SELECTOR } from "../../utils/const.js" ;
44import { compareDocToSnapshot , focusOnEditor } from "../../utils/editor.js" ;
55import { executeSlashCommand } from "../../utils/slashmenu.js" ;
6+ import { insertParagraph } from "../../utils/copypaste.js" ;
67
78test . beforeEach ( async ( { page } ) => {
89 await page . goto ( BASE_URL ) ;
@@ -32,6 +33,32 @@ test.describe("Check Table interactions", () => {
3233
3334 await compareDocToSnapshot ( page , "tabCells.json" ) ;
3435 } ) ;
36+ test ( "Tab in last cell should be a no-op" , async ( { page } ) => {
37+ await focusOnEditor ( page ) ;
38+
39+ await insertParagraph ( page ) ;
40+ await executeSlashCommand ( page , "table" ) ;
41+
42+ for ( let i = 0 ; i < 6 ; i ++ ) {
43+ await page . keyboard . press ( "Tab" ) ;
44+ }
45+
46+ // Only top level block group should exist.
47+ await expect ( page . locator ( ".bn-block-group" ) ) . toHaveCount ( 1 ) ;
48+ } ) ;
49+ test ( "Shift+Tab in first should be a no-op" , async ( { page } ) => {
50+ await focusOnEditor ( page ) ;
51+
52+ await insertParagraph ( page ) ;
53+ await page . keyboard . press ( "Enter" ) ;
54+ await page . keyboard . press ( "Tab" ) ;
55+ await executeSlashCommand ( page , "table" ) ;
56+
57+ await page . keyboard . press ( "Shift+Tab" ) ;
58+
59+ // Block group containing table should exist as well as top level group.
60+ await expect ( page . locator ( ".bn-block-group" ) ) . toHaveCount ( 2 ) ;
61+ } ) ;
3562 test ( "Arrow keys should move cells" , async ( { page } ) => {
3663 await focusOnEditor ( page ) ;
3764 await executeSlashCommand ( page , "table" ) ;
0 commit comments