@@ -2,12 +2,13 @@ import { FileChooser, expect } from "@playwright/test";
22import { test } from "../../setup/setupScript.js" ;
33import {
44 BASE_URL ,
5+ DRAG_HANDLE_SELECTOR ,
56 H_ONE_BLOCK_SELECTOR ,
67 IMAGE_SELECTOR ,
78} from "../../utils/const.js" ;
89import { insertHeading } from "../../utils/copypaste.js" ;
910import { compareDocToSnapshot , focusOnEditor } from "../../utils/editor.js" ;
10- import { dragAndDropBlock } from "../../utils/mouse.js" ;
11+ import { dragAndDropBlock , moveMouseOverElement } from "../../utils/mouse.js" ;
1112import { executeSlashCommand } from "../../utils/slashmenu.js" ;
1213
1314const IMAGE_UPLOAD_PATH = "src/end-to-end/images/placeholder.png" ;
@@ -128,4 +129,44 @@ test.describe("Check Image Block and Toolbar functionality", () => {
128129
129130 await compareDocToSnapshot ( page , "dragImage" ) ;
130131 } ) ;
132+ test ( "Formatting toolbar should not appear when dragging image block" , async ( {
133+ page,
134+ } ) => {
135+ await focusOnEditor ( page ) ;
136+ await executeSlashCommand ( page , "image" ) ;
137+ await insertHeading ( page , 1 ) ;
138+
139+ // move mouse over image to reveal drag handle
140+ const dragTarget = page . locator ( IMAGE_SELECTOR ) ;
141+ await moveMouseOverElement ( page , dragTarget ) ;
142+ await page . waitForTimeout ( 100 ) ;
143+
144+ await page . waitForSelector ( DRAG_HANDLE_SELECTOR ) ;
145+ const dragHandle = page . locator ( DRAG_HANDLE_SELECTOR ) ;
146+ const dragHandleBox = ( await dragHandle . boundingBox ( ) ) ! ;
147+
148+ // start drag from the drag handle
149+ await page . mouse . move (
150+ dragHandleBox . x + dragHandleBox . width / 2 ,
151+ dragHandleBox . y + dragHandleBox . height / 2 ,
152+ { steps : 5 } ,
153+ ) ;
154+ await page . mouse . down ( ) ;
155+ await page . waitForTimeout ( 100 ) ;
156+
157+ // move mid-drag to the heading block
158+ const dropTarget = page . locator ( H_ONE_BLOCK_SELECTOR ) ;
159+ const dropTargetBox = ( await dropTarget . boundingBox ( ) ) ! ;
160+ await page . mouse . move (
161+ dropTargetBox . x + dropTargetBox . width / 2 ,
162+ dropTargetBox . y + dropTargetBox . height / 2 ,
163+ { steps : 5 } ,
164+ ) ;
165+
166+ // assert formatting toolbar is not visible during drag
167+ const toolbar = page . locator ( ".bn-formatting-toolbar" ) ;
168+ await expect ( toolbar ) . not . toBeVisible ( ) ;
169+
170+ await page . mouse . up ( ) ;
171+ } ) ;
131172} ) ;
0 commit comments