diff --git a/ui/components/findings/floating-mute-button.test.tsx b/ui/components/findings/floating-mute-button.test.tsx
index 01eb306ce9..10063d14ee 100644
--- a/ui/components/findings/floating-mute-button.test.tsx
+++ b/ui/components/findings/floating-mute-button.test.tsx
@@ -265,7 +265,7 @@ describe("FloatingMuteButton — onBeforeOpen error handling", () => {
).toHaveTextContent("Send 1 Group and 1 Finding to Jira");
});
- it("should show the Cloud Jira upgrade below the action label", async () => {
+ it("should show the Cloud Jira tooltip and open the upgrade modal", async () => {
// Given
const onSendToJira = vi.fn();
const user = userEvent.setup();
@@ -287,15 +287,20 @@ describe("FloatingMuteButton — onBeforeOpen error handling", () => {
// Then
expect(jiraAction).toBeVisible();
expect(jiraAction).not.toHaveAttribute("aria-disabled");
-
- const jiraLabel = within(jiraAction).getByText("Send to Jira");
- const cloudBadge = within(jiraAction).getByText(
- "Available only in Prowler Cloud",
- );
- expect(jiraLabel.nextElementSibling).toContainElement(cloudBadge);
+ expect(
+ within(jiraAction).queryByText("Available only in Prowler Cloud"),
+ ).not.toBeInTheDocument();
// When
- await user.click(cloudBadge);
+ await user.hover(jiraAction);
+
+ // Then
+ expect(await screen.findByRole("tooltip")).toHaveTextContent(
+ "Available only in Prowler Cloud",
+ );
+
+ // When
+ await user.click(jiraAction);
// Then
expect(useCloudUpgradeStore.getState().activeFeature).toBe(
diff --git a/ui/components/findings/floating-mute-button.tsx b/ui/components/findings/floating-mute-button.tsx
index 696ac6bb78..c9eee25626 100644
--- a/ui/components/findings/floating-mute-button.tsx
+++ b/ui/components/findings/floating-mute-button.tsx
@@ -6,7 +6,6 @@ import { createPortal } from "react-dom";
import { JiraIcon } from "@/components/icons/services/IconServices";
import { Button } from "@/components/shadcn";
-import { Badge } from "@/components/shadcn/badge/badge";
import {
ActionDropdown,
ActionDropdownItem,
@@ -40,10 +39,6 @@ interface FloatingMuteButtonProps {
sendToJiraLabel?: string;
}
-const CloudFeatureBadge = () => (
- {PROWLER_CLOUD_ONLY_TOOLTIP}
-);
-
export function FloatingMuteButton({
selectedCount,
selectedFindingIds,
@@ -168,8 +163,8 @@ export function FloatingMuteButton({
}
label={sendToJiraLabel}
- description={
- !canSendToJira ? : undefined
+ tooltip={
+ !canSendToJira ? PROWLER_CLOUD_ONLY_TOOLTIP : undefined
}
aria-label={sendToJiraLabel}
onSelect={handleJiraClick}
diff --git a/ui/components/findings/table/data-table-row-actions.test.tsx b/ui/components/findings/table/data-table-row-actions.test.tsx
index 7303d6250a..304460b3c7 100644
--- a/ui/components/findings/table/data-table-row-actions.test.tsx
+++ b/ui/components/findings/table/data-table-row-actions.test.tsx
@@ -2,6 +2,9 @@ import { render, screen, waitFor } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import { beforeEach, describe, expect, it, vi } from "vitest";
+import { useCloudUpgradeStore } from "@/store/cloud-upgrade/store";
+import { CLOUD_UPGRADE_FEATURE } from "@/types/cloud-upgrade";
+
const { MuteFindingsModalMock, isGroupedJiraDispatchEnabledMock } = vi.hoisted(
() => ({
MuteFindingsModalMock: vi.fn(() => null),
@@ -43,13 +46,19 @@ vi.mock("@/components/shadcn/dropdown", () => ({
onSelect,
disabled,
disabledTooltip,
+ tooltip,
}: {
label: string;
onSelect?: () => void;
disabled?: boolean;
disabledTooltip?: string;
+ tooltip?: string;
}) => (
-