@@ -55,11 +55,13 @@ describe("updateFocussedState", () => {
5555 document . body . appendChild ( previousSelectedEditableDOM ) ;
5656 VisualBuilder . VisualBuilderGlobalState . value . previousSelectedEditableDOM =
5757 previousSelectedEditableDOM ;
58+ vi . clearAllMocks ( ) ;
5859 } ) ;
5960 afterEach ( ( ) => {
6061 document . body . innerHTML = "" ;
6162 VisualBuilder . VisualBuilderGlobalState . value . previousSelectedEditableDOM =
6263 null ;
64+ vi . clearAllMocks ( ) ;
6365 } ) ;
6466 it ( "should return early if required elements are not provided" , async ( ) => {
6567 const result = await updateFocussedState ( {
@@ -233,6 +235,38 @@ describe("updateFocussedState", () => {
233235 expect . any ( Boolean )
234236 ) ;
235237 } ) ;
238+
239+ it ( "should return early if data-cslp attribute is invalid" , async ( ) => {
240+ const editableElementMock = document . createElement ( "div" ) ;
241+ editableElementMock . setAttribute ( "data-cslp" , "" ) ;
242+ const visualBuilderContainerMock = document . createElement ( "div" ) ;
243+ const overlayWrapperMock = document . createElement ( "div" ) ;
244+ const focusedToolbarMock = document . createElement ( "div" ) ;
245+ const resizeObserverMock = {
246+ disconnect : vi . fn ( ) ,
247+ } as unknown as ResizeObserver ;
248+
249+ const previousSelectedEditableDOM = document . createElement ( "div" ) ;
250+ previousSelectedEditableDOM . setAttribute ( "data-cslp" , "content_type_uid.entry_uid.locale.field_path" ) ;
251+ document . body . appendChild ( previousSelectedEditableDOM ) ;
252+ VisualBuilder . VisualBuilderGlobalState . value . previousSelectedEditableDOM =
253+ previousSelectedEditableDOM ;
254+
255+ document . querySelector = vi . fn ( ) . mockReturnValue ( previousSelectedEditableDOM ) ;
256+
257+ const result = await updateFocussedState ( {
258+ editableElement : editableElementMock ,
259+ visualBuilderContainer : visualBuilderContainerMock ,
260+ overlayWrapper : overlayWrapperMock ,
261+ focusedToolbar : focusedToolbarMock ,
262+ resizeObserver : resizeObserverMock ,
263+ } ) ;
264+
265+ // Should return early without processing
266+ expect ( result ) . toBeUndefined ( ) ;
267+ expect ( getEntryPermissionsCached ) . not . toHaveBeenCalled ( ) ;
268+ expect ( addFocusOverlay ) . not . toHaveBeenCalled ( ) ;
269+ } ) ;
236270} ) ;
237271
238272describe ( "updateFocussedStateOnMutation" , ( ) => {
0 commit comments