@@ -222,177 +222,177 @@ describe("FieldLabelWrapperComponent", () => {
222222
223223 const mockGetParentEditable = ( ) => document . createElement ( "div" ) ;
224224
225- // test("renders current field and parent fields correctly", async () => {
226- // const { findByText } = await asyncRender(
227- // <FieldLabelWrapperComponent
228- // fieldMetadata={mockFieldMetadata}
229- // eventDetails={mockEventDetails}
230- // parentPaths={PARENT_PATHS}
231- // getParentEditableElement={mockGetParentEditable}
232- // />
233- // );
234-
235- // const currentField = await findByText(DISPLAY_NAMES.mockFieldCslp, {}, { timeout: 15000 });
236- // expect(currentField).toBeVisible();
237- // }, { timeout: 20000 });
238-
239- // test("displays current field icon", async () => {
240- // const { findByTestId } = await asyncRender(
241- // <FieldLabelWrapperComponent
242- // fieldMetadata={mockFieldMetadata}
243- // eventDetails={mockEventDetails}
244- // parentPaths={[]}
245- // getParentEditableElement={mockGetParentEditable}
246- // />
247- // );
248-
249- // const fieldIcon = await findByTestId("visual-builder__field-icon");
250- // expect(fieldIcon).toBeInTheDocument();
251- // });
252-
253- // test("renders with correct class when field is disabled", async () => {
254- // vi.mocked(isFieldDisabled).mockReturnValue({
255- // isDisabled: true,
256- // reason: "You have only read access to this field",
257- // });
258- // const { findByTestId } = await asyncRender(
259- // <FieldLabelWrapperComponent
260- // fieldMetadata={mockFieldMetadata}
261- // eventDetails={mockEventDetails}
262- // parentPaths={[]}
263- // getParentEditableElement={mockGetParentEditable}
264- // />
265- // );
266-
267- // const fieldLabel = await findByTestId(
268- // "visual-builder__focused-toolbar__field-label-wrapper"
269- // );
270-
271- // await waitFor(() => {
272- // expect(fieldLabel).toHaveClass(
273- // "visual-builder__focused-toolbar--field-disabled"
274- // );
275- // });
276- // });
277-
278- // test("calls isFieldDisabled with correct arguments", async () => {
279- // const mockFieldSchema = { ...singleLineFieldSchema };
280-
281- // vi.mocked(FieldSchemaMap.getFieldSchema).mockResolvedValue(
282- // mockFieldSchema
283- // );
284-
285- // await asyncRender(
286- // <FieldLabelWrapperComponent
287- // fieldMetadata={mockFieldMetadata}
288- // eventDetails={mockEventDetails}
289- // parentPaths={[]}
290- // getParentEditableElement={mockGetParentEditable}
291- // />
292- // );
293-
294- // // wait for component to mount
295- // await waitFor(() => {
296- // expect(
297- // document.querySelector(
298- // ".visual-builder__focused-toolbar__field-label-container"
299- // )
300- // ).toBeInTheDocument();
301- // });
302-
303- // expect(isFieldDisabled).toHaveBeenCalledWith(
304- // mockFieldSchema,
305- // mockEventDetails,
306- // {
307- // update: {
308- // create: true,
309- // read: true,
310- // update: true,
311- // delete: true,
312- // publish: true,
313- // },
314- // },
315- // {
316- // stage: undefined,
317- // permissions: {
318- // entry: {
319- // update: true,
320- // },
321- // },
322- // }
323- // );
324- // });
325-
326- // test("renders ToolbarTooltip component with correct data", async () => {
327- // const { findByTestId } = await asyncRender(
328- // <FieldLabelWrapperComponent
329- // fieldMetadata={mockFieldMetadata}
330- // eventDetails={mockEventDetails}
331- // parentPaths={[]}
332- // getParentEditableElement={mockGetParentEditable}
333- // />
334- // );
225+ test ( "renders current field and parent fields correctly" , async ( ) => {
226+ const { findByText } = await asyncRender (
227+ < FieldLabelWrapperComponent
228+ fieldMetadata = { mockFieldMetadata }
229+ eventDetails = { mockEventDetails }
230+ parentPaths = { PARENT_PATHS }
231+ getParentEditableElement = { mockGetParentEditable }
232+ />
233+ ) ;
234+
235+ const currentField = await findByText ( DISPLAY_NAMES . mockFieldCslp , { } , { timeout : 15000 } ) ;
236+ expect ( currentField ) . toBeVisible ( ) ;
237+ } , { timeout : 20000 } ) ;
238+
239+ test ( "displays current field icon" , async ( ) => {
240+ const { findByTestId } = await asyncRender (
241+ < FieldLabelWrapperComponent
242+ fieldMetadata = { mockFieldMetadata }
243+ eventDetails = { mockEventDetails }
244+ parentPaths = { [ ] }
245+ getParentEditableElement = { mockGetParentEditable }
246+ />
247+ ) ;
248+
249+ const fieldIcon = await findByTestId ( "visual-builder__field-icon" ) ;
250+ expect ( fieldIcon ) . toBeInTheDocument ( ) ;
251+ } ) ;
252+
253+ test ( "renders with correct class when field is disabled" , async ( ) => {
254+ vi . mocked ( isFieldDisabled ) . mockReturnValue ( {
255+ isDisabled : true ,
256+ reason : "You have only read access to this field" ,
257+ } ) ;
258+ const { findByTestId } = await asyncRender (
259+ < FieldLabelWrapperComponent
260+ fieldMetadata = { mockFieldMetadata }
261+ eventDetails = { mockEventDetails }
262+ parentPaths = { [ ] }
263+ getParentEditableElement = { mockGetParentEditable }
264+ />
265+ ) ;
266+
267+ const fieldLabel = await findByTestId (
268+ "visual-builder__focused-toolbar__field-label-wrapper"
269+ ) ;
270+
271+ await waitFor ( ( ) => {
272+ expect ( fieldLabel ) . toHaveClass (
273+ "visual-builder__focused-toolbar--field-disabled"
274+ ) ;
275+ } ) ;
276+ } ) ;
277+
278+ test ( "calls isFieldDisabled with correct arguments" , async ( ) => {
279+ const mockFieldSchema = { ...singleLineFieldSchema } ;
280+
281+ vi . mocked ( FieldSchemaMap . getFieldSchema ) . mockResolvedValue (
282+ mockFieldSchema
283+ ) ;
284+
285+ await asyncRender (
286+ < FieldLabelWrapperComponent
287+ fieldMetadata = { mockFieldMetadata }
288+ eventDetails = { mockEventDetails }
289+ parentPaths = { [ ] }
290+ getParentEditableElement = { mockGetParentEditable }
291+ />
292+ ) ;
293+
294+ // wait for component to mount
295+ await waitFor ( ( ) => {
296+ expect (
297+ document . querySelector (
298+ ".visual-builder__focused-toolbar__field-label-container"
299+ )
300+ ) . toBeInTheDocument ( ) ;
301+ } ) ;
302+
303+ expect ( isFieldDisabled ) . toHaveBeenCalledWith (
304+ mockFieldSchema ,
305+ mockEventDetails ,
306+ {
307+ update : {
308+ create : true ,
309+ read : true ,
310+ update : true ,
311+ delete : true ,
312+ publish : true ,
313+ } ,
314+ } ,
315+ {
316+ stage : undefined ,
317+ permissions : {
318+ entry : {
319+ update : true ,
320+ } ,
321+ } ,
322+ }
323+ ) ;
324+ } ) ;
325+
326+ test ( "renders ToolbarTooltip component with correct data" , async ( ) => {
327+ const { findByTestId } = await asyncRender (
328+ < FieldLabelWrapperComponent
329+ fieldMetadata = { mockFieldMetadata }
330+ eventDetails = { mockEventDetails }
331+ parentPaths = { [ ] }
332+ getParentEditableElement = { mockGetParentEditable }
333+ />
334+ ) ;
335335
336- // // Check that the ToolbarTooltip wrapper is rendered
337- // const tooltipWrapper = await findByTestId("toolbar-tooltip", { timeout: 15000 });
338- // expect(tooltipWrapper).toBeInTheDocument();
336+ // Check that the ToolbarTooltip wrapper is rendered
337+ const tooltipWrapper = await findByTestId ( "toolbar-tooltip" , { timeout : 15000 } ) ;
338+ expect ( tooltipWrapper ) . toBeInTheDocument ( ) ;
339339
340- // // Check that the main field label wrapper is rendered
341- // const fieldLabelWrapper = await findByTestId("visual-builder__focused-toolbar__field-label-wrapper", { timeout: 15000 });
342- // expect(fieldLabelWrapper).toBeInTheDocument();
343- // }, { timeout: 20000 });
344-
345- // test("does not render reference icon when isReference is false", async () => {
346- // const { container } = await asyncRender(
347- // <FieldLabelWrapperComponent
348- // fieldMetadata={mockFieldMetadata}
349- // eventDetails={mockEventDetails}
350- // parentPaths={[]}
351- // getParentEditableElement={mockGetParentEditable}
352- // />
353- // );
354-
355- // await waitFor(() => {
356- // const referenceIconContainer = container.querySelector(".visual-builder__reference-icon-container");
357- // expect(referenceIconContainer).not.toBeInTheDocument();
358- // });
359- // });
360-
361- // test("renders with correct hovered cslp data attribute", async () => {
362- // const { findByTestId } = await asyncRender(
363- // <FieldLabelWrapperComponent
364- // fieldMetadata={mockFieldMetadata}
365- // eventDetails={mockEventDetails}
366- // parentPaths={[]}
367- // getParentEditableElement={mockGetParentEditable}
368- // />
369- // );
370-
371- // const fieldLabelWrapper = await findByTestId("visual-builder__focused-toolbar__field-label-wrapper");
372- // expect(fieldLabelWrapper).toHaveAttribute("data-hovered-cslp", mockFieldMetadata.cslpValue);
373- // });
374-
375- // test("does not render ContentTypeIcon when loading", async () => {
376- // // Mock the display names to never resolve to simulate loading state
377- // vi.mocked(visualBuilderPostMessage!.send).mockImplementation(() => {
378- // return new Promise(() => {}); // Never resolves
379- // });
380-
381- // const { container } = await asyncRender(
382- // <FieldLabelWrapperComponent
383- // fieldMetadata={mockFieldMetadata}
384- // eventDetails={mockEventDetails}
385- // parentPaths={[]}
386- // getParentEditableElement={mockGetParentEditable}
387- // />
388- // );
389-
390- // // Wait a bit to ensure the component has time to render
391- // await new Promise(resolve => setTimeout(resolve, 100));
392-
393- // const contentTypeIcon = container.querySelector(".visual-builder__content-type-icon");
394- // expect(contentTypeIcon).not.toBeInTheDocument();
395- // });
340+ // Check that the main field label wrapper is rendered
341+ const fieldLabelWrapper = await findByTestId ( "visual-builder__focused-toolbar__field-label-wrapper" , { timeout : 15000 } ) ;
342+ expect ( fieldLabelWrapper ) . toBeInTheDocument ( ) ;
343+ } , { timeout : 20000 } ) ;
344+
345+ test ( "does not render reference icon when isReference is false" , async ( ) => {
346+ const { container } = await asyncRender (
347+ < FieldLabelWrapperComponent
348+ fieldMetadata = { mockFieldMetadata }
349+ eventDetails = { mockEventDetails }
350+ parentPaths = { [ ] }
351+ getParentEditableElement = { mockGetParentEditable }
352+ />
353+ ) ;
354+
355+ await waitFor ( ( ) => {
356+ const referenceIconContainer = container . querySelector ( ".visual-builder__reference-icon-container" ) ;
357+ expect ( referenceIconContainer ) . not . toBeInTheDocument ( ) ;
358+ } ) ;
359+ } ) ;
360+
361+ test ( "renders with correct hovered cslp data attribute" , async ( ) => {
362+ const { findByTestId } = await asyncRender (
363+ < FieldLabelWrapperComponent
364+ fieldMetadata = { mockFieldMetadata }
365+ eventDetails = { mockEventDetails }
366+ parentPaths = { [ ] }
367+ getParentEditableElement = { mockGetParentEditable }
368+ />
369+ ) ;
370+
371+ const fieldLabelWrapper = await findByTestId ( "visual-builder__focused-toolbar__field-label-wrapper" ) ;
372+ expect ( fieldLabelWrapper ) . toHaveAttribute ( "data-hovered-cslp" , mockFieldMetadata . cslpValue ) ;
373+ } ) ;
374+
375+ test ( "does not render ContentTypeIcon when loading" , async ( ) => {
376+ // Mock the display names to never resolve to simulate loading state
377+ vi . mocked ( visualBuilderPostMessage ! . send ) . mockImplementation ( ( ) => {
378+ return new Promise ( ( ) => { } ) ; // Never resolves
379+ } ) ;
380+
381+ const { container } = await asyncRender (
382+ < FieldLabelWrapperComponent
383+ fieldMetadata = { mockFieldMetadata }
384+ eventDetails = { mockEventDetails }
385+ parentPaths = { [ ] }
386+ getParentEditableElement = { mockGetParentEditable }
387+ />
388+ ) ;
389+
390+ // Wait a bit to ensure the component has time to render
391+ await new Promise ( resolve => setTimeout ( resolve , 100 ) ) ;
392+
393+ const contentTypeIcon = container . querySelector ( ".visual-builder__content-type-icon" ) ;
394+ expect ( contentTypeIcon ) . not . toBeInTheDocument ( ) ;
395+ } ) ;
396396
397397 test ( "renders VariantIndicator when field has variant" , async ( ) => {
398398 const variantFieldMetadata = {
0 commit comments