mirror of
https://github.com/fleetdm/fleet
synced 2026-05-23 17:08:53 +00:00
Fix RunScript tests and update mock server domain (#35746)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or remove if NA --> **Related issue:** Resolves #35730 # Details * Unskipped and updated the RunScript (setup experience scripts UI) tests to check for loading spinner, wait for it to disappear, and then check for relevant items for test. * Updated the mock server URL so that if a handler is missing in a test, it won't accidentally be served by a local Fleet server (unless someone intentionally starts a server on `fleettest.test:9876`). # Checklist for submitter ## Testing - [X] Added/updated automated tests - [X] QA'd all new/changed functionality manually * Ran all tests locally without Fleet server running, verified they passed. * Removed one of the "get team" handlers from the RunScript tests, verified that it now fails even with Fleet server running.
This commit is contained in:
parent
a638f18d17
commit
471cc13e3d
2 changed files with 36 additions and 7 deletions
|
|
@ -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(<RunScript router={createMockRouter()} currentTeamId={1} />);
|
||||
|
||||
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(<RunScript router={createMockRouter()} currentTeamId={1} />);
|
||||
|
||||
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(<RunScript router={createMockRouter()} currentTeamId={1} />);
|
||||
|
||||
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(<RunScript router={createMockRouter()} currentTeamId={1} />);
|
||||
|
||||
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();
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ const config: Config = {
|
|||
setupFilesAfterEnv: ["<rootDir>/frontend/test/test-setup.ts"],
|
||||
clearMocks: true,
|
||||
testEnvironmentOptions: {
|
||||
url: "http://localhost:8080",
|
||||
url: "http://fleettest.test:9876",
|
||||
customExportConditions: [""],
|
||||
},
|
||||
transformIgnorePatterns: [`/node_modules/(?!(${esModules})/)`],
|
||||
|
|
|
|||
Loading…
Reference in a new issue