@@ -548,116 +548,137 @@ describe("CreateWorkspacePageExperimental", () => {
548
548
} ) ;
549
549
} ) ;
550
550
551
- // describe("Dynamic Parameter Types", () => {
552
- // it("renders string parameter with select options", async () => {
553
- // renderCreateWorkspacePageExperimental();
554
- // await waitForLoaderToBeRemoved();
551
+ describe ( "Dynamic Parameter Types" , ( ) => {
552
+ it ( "renders string parameter with select options" , async ( ) => {
553
+ renderCreateWorkspacePageExperimental ( ) ;
554
+ await waitForLoaderToBeRemoved ( ) ;
555
555
556
- // await waitFor(() => {
557
- // expect(screen.getByText("Instance Type")).toBeInTheDocument();
558
- // expect(
559
- // screen.getByRole("combobox", { name: /instance type/i }),
560
- // ).toBeInTheDocument();
561
- // });
556
+ await waitFor ( ( ) => {
557
+ expect ( screen . getByText ( "Instance Type" ) ) . toBeInTheDocument ( ) ;
558
+ expect (
559
+ screen . getByRole ( "combobox" , { name : / i n s t a n c e t y p e / i } ) ,
560
+ ) . toBeInTheDocument ( ) ;
561
+ } ) ;
562
562
563
- // // Open select and verify options
564
- // const select = screen.getByRole("combobox", { name: /instance type/i });
565
- // await userEvent.click(select);
563
+ // Open select and verify options
564
+ const select = screen . getByRole ( "combobox" , { name : / i n s t a n c e t y p e / i } ) ;
566
565
567
- // expect(screen.getByText("Small instance")).toBeInTheDocument();
568
- // expect(screen.getByText("Medium instance")).toBeInTheDocument();
569
- // expect(screen.getByText("Large instance")).toBeInTheDocument();
570
- // });
566
+ await waitFor ( async ( ) => {
567
+ await userEvent . click ( select ) ;
568
+ } ) ;
571
569
572
- // it("renders number parameter with slider", async () => {
573
- // renderCreateWorkspacePageExperimental();
574
- // await waitForLoaderToBeRemoved();
570
+ expect ( screen . getByRole ( "option" , { name : / t 3 \. m i c r o / i } ) ) . toBeInTheDocument ( ) ;
571
+ expect ( screen . getByRole ( "option" , { name : / t 3 \. s m a l l / i } ) ) . toBeInTheDocument ( ) ;
572
+ expect ( screen . getByRole ( "option" , { name : / t 3 \. m e d i u m / i } ) ) . toBeInTheDocument ( ) ;
573
+ } ) ;
575
574
576
- // await waitFor(() => {
577
- // expect(screen.getByText("CPU Count")).toBeInTheDocument();
578
- // expect(
579
- // screen.getByRole("slider", { name: /cpu count/i }),
580
- // ).toBeInTheDocument();
581
- // });
582
- // });
575
+ it ( "renders number parameter with slider" , async ( ) => {
576
+ renderCreateWorkspacePageExperimental ( ) ;
577
+ await waitForLoaderToBeRemoved ( ) ;
583
578
584
- // it("renders boolean parameter with switch", async () => {
585
- // renderCreateWorkspacePageExperimental ();
586
- // await waitForLoaderToBeRemoved( );
579
+ await waitFor ( ( ) => {
580
+ expect ( screen . getByText ( "CPU Count" ) ) . toBeInTheDocument ( ) ;
581
+ } ) ;
587
582
588
- // await waitFor(() => {
589
- // expect(screen.getByText("Enable Monitoring")).toBeInTheDocument();
590
- // expect(
591
- // screen.getByRole("switch", { name: /enable monitoring/i }),
592
- // ).toBeInTheDocument();
593
- // });
594
- // });
583
+ await waitFor ( ( ) => {
584
+ const numberInput = screen . getByDisplayValue ( "2" ) ;
585
+ expect ( numberInput ) . toBeInTheDocument ( ) ;
586
+ } ) ;
587
+ } ) ;
595
588
596
- // it("renders list parameter with tag input ", async () => {
597
- // renderCreateWorkspacePageExperimental();
598
- // await waitForLoaderToBeRemoved();
589
+ it ( "renders boolean parameter with switch " , async ( ) => {
590
+ renderCreateWorkspacePageExperimental ( ) ;
591
+ await waitForLoaderToBeRemoved ( ) ;
599
592
600
- // await waitFor(() => {
601
- // expect(screen.getByText("Tags ")).toBeInTheDocument();
602
- // expect(
603
- // screen.getByRole("textbox ", { name: /tags /i }),
604
- // ).toBeInTheDocument();
605
- // });
606
- // });
593
+ await waitFor ( ( ) => {
594
+ expect ( screen . getByText ( "Enable Monitoring " ) ) . toBeInTheDocument ( ) ;
595
+ expect (
596
+ screen . getByRole ( "switch " , { name : / e n a b l e m o n i t o r i n g / i } ) ,
597
+ ) . toBeInTheDocument ( ) ;
598
+ } ) ;
599
+ } ) ;
607
600
608
- // it("displays parameter validation errors", async () => {
609
- // jest
610
- // .spyOn(API, "templateVersionDynamicParameters")
611
- // .mockImplementation((versionId, _ownerId, callbacks) => {
612
- // const [socket, pub] = createMockWebSocket(`ws://test/${versionId}`);
613
- // mockWebSocket = socket;
614
- // publisher = pub;
615
-
616
- // socket.addEventListener("message", (event) => {
617
- // callbacks.onMessage(JSON.parse(event.data));
618
- // });
619
-
620
- // setTimeout(() => {
621
- // publisher.publishMessage(
622
- // new MessageEvent("message", {
623
- // data: JSON.stringify(mockDynamicParametersResponseWithError),
624
- // }),
625
- // );
626
- // }, 10);
627
-
628
- // return mockWebSocket;
629
- // });
601
+ it ( "renders list parameter with tag input" , async ( ) => {
602
+ renderCreateWorkspacePageExperimental ( ) ;
603
+ await waitForLoaderToBeRemoved ( ) ;
630
604
631
- // renderCreateWorkspacePageExperimental();
632
- // await waitForLoaderToBeRemoved();
605
+ await waitFor ( ( ) => {
606
+ expect ( screen . getByText ( "Tags" ) ) . toBeInTheDocument ( ) ;
607
+ expect (
608
+ screen . getByRole ( "textbox" , { name : / t a g s / i } ) ,
609
+ ) . toBeInTheDocument ( ) ;
610
+ } ) ;
611
+ } ) ;
633
612
634
- // await waitFor(() => {
635
- // expect(screen.getByText("Validation failed")).toBeInTheDocument();
636
- // expect(
637
- // screen.getByText(
638
- // "The selected instance type is not available in this region",
639
- // ),
640
- // ).toBeInTheDocument();
641
- // });
642
- // });
613
+ it ( "displays parameter validation errors" , async ( ) => {
614
+ jest
615
+ . spyOn ( API , "templateVersionDynamicParameters" )
616
+ . mockImplementation ( ( versionId , _ownerId , callbacks ) => {
617
+ const [ socket , pub ] = createMockWebSocket ( `ws://test/${ versionId } ` ) ;
618
+ mockWebSocket = socket ;
619
+ publisher = pub ;
643
620
644
- // it("handles disabled parameters", async () => {
645
- // renderCreateWorkspacePageExperimental(
646
- // `/templates/${MockTemplate.name}/workspace?disable_params=instance_type,cpu_count`,
647
- // );
648
- // await waitForLoaderToBeRemoved();
621
+ socket . addEventListener ( "message" , ( event ) => {
622
+ callbacks . onMessage ( JSON . parse ( event . data ) ) ;
623
+ } ) ;
649
624
650
- // await waitFor(() => {
651
- // const instanceTypeSelect = screen.getByRole("combobox", {
652
- // name: /instance type/i,
653
- // });
654
- // const cpuSlider = screen.getByRole("slider", { name: /cpu count/i });
625
+ setTimeout ( ( ) => {
626
+ publisher . publishMessage (
627
+ new MessageEvent ( "message" , {
628
+ data : JSON . stringify ( mockDynamicParametersResponseWithError ) ,
629
+ } ) ,
630
+ ) ;
631
+ } , 10 ) ;
655
632
656
- // expect(instanceTypeSelect).toBeDisabled();
657
- // expect(cpuSlider).toBeDisabled();
658
- // });
659
- // });
660
- // });
633
+ return mockWebSocket ;
634
+ } ) ;
635
+
636
+ renderCreateWorkspacePageExperimental ( ) ;
637
+ await waitForLoaderToBeRemoved ( ) ;
638
+
639
+ await waitFor ( ( ) => {
640
+ expect ( screen . getByText ( "Validation failed" ) ) . toBeInTheDocument ( ) ;
641
+ expect (
642
+ screen . getByText (
643
+ "The selected instance type is not available in this region" ,
644
+ ) ,
645
+ ) . toBeInTheDocument ( ) ;
646
+ } ) ;
647
+ } ) ;
648
+
649
+ // it("handles disabled parameters", async () => {
650
+ // renderCreateWorkspacePageExperimental(
651
+ // `/templates/${MockTemplate.name}/workspace?disable_params=instance_type,cpu_count`,
652
+ // );
653
+ // await waitForLoaderToBeRemoved();
654
+
655
+ // // Wait for parameters to load via WebSocket first
656
+ // await waitFor(() => {
657
+ // expect(screen.getByText("Instance Type")).toBeInTheDocument();
658
+ // expect(screen.getByText("CPU Count")).toBeInTheDocument();
659
+ // });
660
+
661
+ // // Now check if the form controls are disabled
662
+ // await waitFor(() => {
663
+ // const instanceTypeSelect = screen.queryByRole("combobox", {
664
+ // name: /instance type/i,
665
+ // });
666
+ // const cpuInput = screen.queryByDisplayValue("2"); // Look for the number input by its default value
667
+
668
+ // // These elements should either be disabled or not present when disabled
669
+ // if (instanceTypeSelect) {
670
+ // expect(instanceTypeSelect).toBeDisabled();
671
+ // }
672
+ // if (cpuInput) {
673
+ // expect(cpuInput).toBeDisabled();
674
+ // }
675
+
676
+ // // At minimum, the labels should be present
677
+ // expect(screen.getByText("Instance Type")).toBeInTheDocument();
678
+ // expect(screen.getByText("CPU Count")).toBeInTheDocument();
679
+ // });
680
+ // });
681
+ } ) ;
661
682
662
683
// describe("External Authentication", () => {
663
684
// it("displays external auth providers", async () => {
0 commit comments