fleet/frontend/components/GitOpsModeTooltipWrapper/GitOpsModeTooltipWrapper.tests.tsx
Gabriel Hernandez 782b522cd1
disable deletion of EULA from UI when gitops mode enabled (#30555)
relates to [#28143](https://github.com/fleetdm/fleet/issues/28143)

quick fix to not allow deleting EULA when gitops mode is enabled.

- [x] Manual QA for all new/changed functionality


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* The delete button in the EULA list is now conditionally disabled based
on GitOps mode, with an explanatory tooltip.

* **Chores**
  * Removed an unused import from a test file.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-07 15:32:33 +01:00

88 lines
2.1 KiB
TypeScript

import React from "react";
import { screen } from "@testing-library/react";
import { createCustomRenderer } from "test/test-utils";
import Button from "components/buttons/Button";
import GitOpsModeTooltipWrapper from "./GitOpsModeTooltipWrapper";
describe("GitOpsModeTooltipWrapper", () => {
it("renders clickable children without a tooltip when GOM is not enabled", async () => {
const render = createCustomRenderer({
context: {
app: {
isGlobalAdmin: true,
isTeamAdmin: false,
// thanks, DeepPartial!
config: {
gitops: {
gitops_mode_enabled: false,
repository_url: "",
},
},
},
},
});
const onSave = jest.fn();
const { user } = render(
<GitOpsModeTooltipWrapper
renderChildren={(disableChildren) => (
<Button disabled={disableChildren} onClick={onSave}>
Save
</Button>
)}
/>
);
const btn = screen.getByText("Save");
expect(btn).toBeInTheDocument();
await user.hover(btn);
expect(screen.queryByRole("tooltip")).toBeNull();
await user.click(btn);
expect(onSave).toHaveBeenCalled();
});
it("renders non-clickable children with the tooltip when GOM is enabled", async () => {
const render = createCustomRenderer({
context: {
app: {
isGlobalAdmin: true,
isTeamAdmin: false,
// thanks, DeepPartial!
config: {
gitops: {
gitops_mode_enabled: true,
repository_url: "a.b.cc",
},
},
},
},
});
const onSave = jest.fn();
const { user } = render(
<GitOpsModeTooltipWrapper
renderChildren={(disableChildren) => (
<Button disabled={disableChildren} onClick={onSave}>
Save
</Button>
)}
/>
);
const btn = screen.getByText("Save");
expect(btn).toBeInTheDocument();
await user.hover(btn);
expect(screen.getByRole("tooltip")).toBeInTheDocument();
await user.click(btn);
expect(onSave).not.toHaveBeenCalled();
});
});