Skip to content

Commit b9afadf

Browse files
committed
fix: fix more tests
1 parent 2182821 commit b9afadf

File tree

1 file changed

+116
-95
lines changed

1 file changed

+116
-95
lines changed

site/src/pages/CreateWorkspacePage/CreateWorkspacePageExperimental.test.tsx

Lines changed: 116 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -548,116 +548,137 @@ describe("CreateWorkspacePageExperimental", () => {
548548
});
549549
});
550550

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();
555555

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: /instance type/i }),
560+
).toBeInTheDocument();
561+
});
562562

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: /instance type/i });
566565

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+
});
571569

572-
// it("renders number parameter with slider", async () => {
573-
// renderCreateWorkspacePageExperimental();
574-
// await waitForLoaderToBeRemoved();
570+
expect(screen.getByRole("option", { name: /t3\.micro/i })).toBeInTheDocument();
571+
expect(screen.getByRole("option", { name: /t3\.small/i })).toBeInTheDocument();
572+
expect(screen.getByRole("option", { name: /t3\.medium/i })).toBeInTheDocument();
573+
});
575574

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();
583578

584-
// it("renders boolean parameter with switch", async () => {
585-
// renderCreateWorkspacePageExperimental();
586-
// await waitForLoaderToBeRemoved();
579+
await waitFor(() => {
580+
expect(screen.getByText("CPU Count")).toBeInTheDocument();
581+
});
587582

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+
});
595588

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();
599592

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: /enable monitoring/i }),
597+
).toBeInTheDocument();
598+
});
599+
});
607600

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();
630604

631-
// renderCreateWorkspacePageExperimental();
632-
// await waitForLoaderToBeRemoved();
605+
await waitFor(() => {
606+
expect(screen.getByText("Tags")).toBeInTheDocument();
607+
expect(
608+
screen.getByRole("textbox", { name: /tags/i }),
609+
).toBeInTheDocument();
610+
});
611+
});
633612

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;
643620

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+
});
649624

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);
655632

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+
});
661682

662683
// describe("External Authentication", () => {
663684
// it("displays external auth providers", async () => {

0 commit comments

Comments
 (0)