diff --git a/frontend/pages/ManageControlsPage/SetupExperience/cards/RunScript/RunScript.tests.tsx b/frontend/pages/ManageControlsPage/SetupExperience/cards/RunScript/RunScript.tests.tsx index d6cb04f312..0bf7207aff 100644 --- a/frontend/pages/ManageControlsPage/SetupExperience/cards/RunScript/RunScript.tests.tsx +++ b/frontend/pages/ManageControlsPage/SetupExperience/cards/RunScript/RunScript.tests.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { screen } from "@testing-library/react"; +import { screen, waitFor } from "@testing-library/react"; import mockServer from "test/mock-server"; import { createCustomRenderer, createMockRouter } from "test/test-utils"; @@ -8,14 +8,13 @@ import { errorNoSetupExperienceScriptHandler, } from "test/handlers/setup-experience-handlers"; import { createGetConfigHandler } from "test/handlers/config-handlers"; +import { createGetTeamHandler } from "test/handlers/team-handlers"; import { createMockMdmConfig } from "__mocks__/configMock"; import RunScript from "./RunScript"; -// eslint-disable-next-line jest/no-disabled-tests -describe.skip("RunScript", () => { - // skipped until https://github.com/fleetdm/fleet/issues/35730 is fixed +describe("RunScript", () => { it("should render the 'turn on automatic enrollment' message when MDM isn't configured", async () => { mockServer.use(errorNoSetupExperienceScriptHandler); mockServer.use( @@ -23,16 +22,24 @@ describe.skip("RunScript", () => { mdm: createMockMdmConfig({ enabled_and_configured: false }), }) ); + mockServer.use(createGetTeamHandler({})); const render = createCustomRenderer({ withBackendMock: true, }); render(); - + expect(screen.getByTestId("spinner")).toBeVisible(); + expect( + screen.queryByText(/turn on automatic enrollment/) + ).not.toBeInTheDocument(); + await waitFor(async () => { + expect(screen.queryByTestId("spinner")).not.toBeInTheDocument(); + }); expect( screen.getByText(/turn on automatic enrollment/) ).toBeInTheDocument(); }); + it("should render the 'turn on automatic enrollment' message when MDM is configured but not ABM", async () => { mockServer.use(errorNoSetupExperienceScriptHandler); mockServer.use( @@ -43,37 +50,59 @@ describe.skip("RunScript", () => { }), }) ); + mockServer.use(createGetTeamHandler({})); const render = createCustomRenderer({ withBackendMock: true, }); render(); + expect(screen.getByTestId("spinner")).toBeVisible(); + expect( + screen.queryByText(/turn on automatic enrollment/) + ).not.toBeInTheDocument(); + await waitFor(async () => { + expect(screen.queryByTestId("spinner")).not.toBeInTheDocument(); + }); expect( screen.getByText(/turn on automatic enrollment/) ).toBeInTheDocument(); }); + it("should render the script uploader when no script has been uploaded", async () => { mockServer.use(errorNoSetupExperienceScriptHandler); mockServer.use(createGetConfigHandler()); + mockServer.use(createGetTeamHandler({})); const render = createCustomRenderer({ withBackendMock: true, }); render(); - + expect(screen.getByTestId("spinner")).toBeVisible(); + expect(screen.queryByLabelText("Upload")).not.toBeInTheDocument(); + await waitFor(async () => { + expect(screen.queryByTestId("spinner")).not.toBeInTheDocument(); + }); expect(await screen.findByRole("button", { name: "Upload" })).toBeVisible(); }); it("should render the uploaded script uploader when a script has been uploaded", async () => { mockServer.use(createSetupExperienceScriptHandler()); mockServer.use(createGetConfigHandler()); + mockServer.use(createGetTeamHandler({})); const render = createCustomRenderer({ withBackendMock: true, }); render(); + expect(screen.getByTestId("spinner")).toBeVisible(); + expect( + screen.queryByText("Script will run during setup:") + ).not.toBeInTheDocument(); + await waitFor(async () => { + expect(screen.queryByTestId("spinner")).not.toBeInTheDocument(); + }); expect( await screen.findByText("Script will run during setup:") ).toBeVisible(); diff --git a/frontend/test/jest.config.ts b/frontend/test/jest.config.ts index c587a302cd..c75ae8d0d3 100644 --- a/frontend/test/jest.config.ts +++ b/frontend/test/jest.config.ts @@ -39,7 +39,7 @@ const config: Config = { setupFilesAfterEnv: ["/frontend/test/test-setup.ts"], clearMocks: true, testEnvironmentOptions: { - url: "http://localhost:8080", + url: "http://fleettest.test:9876", customExportConditions: [""], }, transformIgnorePatterns: [`/node_modules/(?!(${esModules})/)`],