2024-10-14 12:01:56 +00:00
|
|
|
import React from "react";
|
2025-11-14 15:08:37 +00:00
|
|
|
import { screen, waitFor } from "@testing-library/react";
|
2024-10-14 12:01:56 +00:00
|
|
|
|
|
|
|
|
import mockServer from "test/mock-server";
|
2025-09-10 23:51:02 +00:00
|
|
|
import { createCustomRenderer, createMockRouter } from "test/test-utils";
|
2024-10-14 12:01:56 +00:00
|
|
|
import {
|
2025-04-30 15:22:24 +00:00
|
|
|
createSetupExperienceScriptHandler,
|
|
|
|
|
errorNoSetupExperienceScriptHandler,
|
2024-10-14 12:01:56 +00:00
|
|
|
} from "test/handlers/setup-experience-handlers";
|
2025-09-10 23:51:02 +00:00
|
|
|
import { createGetConfigHandler } from "test/handlers/config-handlers";
|
2025-11-14 15:08:37 +00:00
|
|
|
import { createGetTeamHandler } from "test/handlers/team-handlers";
|
2025-09-10 23:51:02 +00:00
|
|
|
|
|
|
|
|
import { createMockMdmConfig } from "__mocks__/configMock";
|
2024-10-14 12:01:56 +00:00
|
|
|
|
2025-04-29 14:29:21 +00:00
|
|
|
import RunScript from "./RunScript";
|
2024-10-14 12:01:56 +00:00
|
|
|
|
2025-11-14 15:08:37 +00:00
|
|
|
describe("RunScript", () => {
|
2025-09-10 23:51:02 +00:00
|
|
|
it("should render the 'turn on automatic enrollment' message when MDM isn't configured", async () => {
|
|
|
|
|
mockServer.use(errorNoSetupExperienceScriptHandler);
|
|
|
|
|
mockServer.use(
|
|
|
|
|
createGetConfigHandler({
|
|
|
|
|
mdm: createMockMdmConfig({ enabled_and_configured: false }),
|
|
|
|
|
})
|
|
|
|
|
);
|
2025-11-14 15:08:37 +00:00
|
|
|
mockServer.use(createGetTeamHandler({}));
|
2025-09-10 23:51:02 +00:00
|
|
|
const render = createCustomRenderer({
|
|
|
|
|
withBackendMock: true,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
render(<RunScript router={createMockRouter()} currentTeamId={1} />);
|
2025-11-14 15:08:37 +00:00
|
|
|
expect(screen.getByTestId("spinner")).toBeVisible();
|
|
|
|
|
expect(
|
|
|
|
|
screen.queryByText(/turn on automatic enrollment/)
|
|
|
|
|
).not.toBeInTheDocument();
|
|
|
|
|
await waitFor(async () => {
|
|
|
|
|
expect(screen.queryByTestId("spinner")).not.toBeInTheDocument();
|
|
|
|
|
});
|
2025-09-10 23:51:02 +00:00
|
|
|
expect(
|
2025-11-14 05:21:28 +00:00
|
|
|
screen.getByText(/turn on automatic enrollment/)
|
2025-09-10 23:51:02 +00:00
|
|
|
).toBeInTheDocument();
|
|
|
|
|
});
|
2025-11-14 15:08:37 +00:00
|
|
|
|
2025-09-10 23:51:02 +00:00
|
|
|
it("should render the 'turn on automatic enrollment' message when MDM is configured but not ABM", async () => {
|
|
|
|
|
mockServer.use(errorNoSetupExperienceScriptHandler);
|
|
|
|
|
mockServer.use(
|
|
|
|
|
createGetConfigHandler({
|
|
|
|
|
mdm: createMockMdmConfig({
|
|
|
|
|
enabled_and_configured: true,
|
|
|
|
|
apple_bm_enabled_and_configured: false,
|
|
|
|
|
}),
|
|
|
|
|
})
|
|
|
|
|
);
|
2025-11-14 15:08:37 +00:00
|
|
|
mockServer.use(createGetTeamHandler({}));
|
2025-09-10 23:51:02 +00:00
|
|
|
const render = createCustomRenderer({
|
|
|
|
|
withBackendMock: true,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
render(<RunScript router={createMockRouter()} currentTeamId={1} />);
|
|
|
|
|
|
2025-11-14 15:08:37 +00:00
|
|
|
expect(screen.getByTestId("spinner")).toBeVisible();
|
|
|
|
|
expect(
|
|
|
|
|
screen.queryByText(/turn on automatic enrollment/)
|
|
|
|
|
).not.toBeInTheDocument();
|
|
|
|
|
await waitFor(async () => {
|
|
|
|
|
expect(screen.queryByTestId("spinner")).not.toBeInTheDocument();
|
|
|
|
|
});
|
2025-09-10 23:51:02 +00:00
|
|
|
expect(
|
2025-11-14 05:21:28 +00:00
|
|
|
screen.getByText(/turn on automatic enrollment/)
|
2025-09-10 23:51:02 +00:00
|
|
|
).toBeInTheDocument();
|
|
|
|
|
});
|
2025-11-14 15:08:37 +00:00
|
|
|
|
2024-10-14 12:01:56 +00:00
|
|
|
it("should render the script uploader when no script has been uploaded", async () => {
|
2025-04-30 15:22:24 +00:00
|
|
|
mockServer.use(errorNoSetupExperienceScriptHandler);
|
2025-09-10 23:51:02 +00:00
|
|
|
mockServer.use(createGetConfigHandler());
|
2025-11-14 15:08:37 +00:00
|
|
|
mockServer.use(createGetTeamHandler({}));
|
2025-09-10 23:51:02 +00:00
|
|
|
const render = createCustomRenderer({
|
|
|
|
|
withBackendMock: true,
|
|
|
|
|
});
|
2024-10-14 12:01:56 +00:00
|
|
|
|
2025-09-10 23:51:02 +00:00
|
|
|
render(<RunScript router={createMockRouter()} currentTeamId={1} />);
|
2025-11-14 15:08:37 +00:00
|
|
|
expect(screen.getByTestId("spinner")).toBeVisible();
|
|
|
|
|
expect(screen.queryByLabelText("Upload")).not.toBeInTheDocument();
|
|
|
|
|
await waitFor(async () => {
|
|
|
|
|
expect(screen.queryByTestId("spinner")).not.toBeInTheDocument();
|
|
|
|
|
});
|
2024-10-14 12:01:56 +00:00
|
|
|
expect(await screen.findByRole("button", { name: "Upload" })).toBeVisible();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("should render the uploaded script uploader when a script has been uploaded", async () => {
|
2025-04-30 15:22:24 +00:00
|
|
|
mockServer.use(createSetupExperienceScriptHandler());
|
2025-09-10 23:51:02 +00:00
|
|
|
mockServer.use(createGetConfigHandler());
|
2025-11-14 15:08:37 +00:00
|
|
|
mockServer.use(createGetTeamHandler({}));
|
2025-09-10 23:51:02 +00:00
|
|
|
const render = createCustomRenderer({
|
|
|
|
|
withBackendMock: true,
|
|
|
|
|
});
|
2024-10-14 12:01:56 +00:00
|
|
|
|
2025-09-10 23:51:02 +00:00
|
|
|
render(<RunScript router={createMockRouter()} currentTeamId={1} />);
|
2024-10-14 12:01:56 +00:00
|
|
|
|
2025-11-14 15:08:37 +00:00
|
|
|
expect(screen.getByTestId("spinner")).toBeVisible();
|
|
|
|
|
expect(
|
|
|
|
|
screen.queryByText("Script will run during setup:")
|
|
|
|
|
).not.toBeInTheDocument();
|
|
|
|
|
await waitFor(async () => {
|
|
|
|
|
expect(screen.queryByTestId("spinner")).not.toBeInTheDocument();
|
|
|
|
|
});
|
2024-10-14 12:01:56 +00:00
|
|
|
expect(
|
|
|
|
|
await screen.findByText("Script will run during setup:")
|
|
|
|
|
).toBeVisible();
|
|
|
|
|
expect(await screen.findByText("Test Script.sh")).toBeVisible();
|
|
|
|
|
});
|
|
|
|
|
});
|