feat(FN-1548): merge fusion/fn-1548

This commit is contained in:
gsxdsm
2026-04-10 10:49:27 -07:00
parent 3870d0c9d8
commit a95e965780
2 changed files with 3 additions and 41 deletions

View File

@@ -1292,21 +1292,7 @@ export function MissionManager({ isOpen, isInline = false, onClose, addToast, pr
{selectedMission ? selectedMission.title : "Missions"}
</h2>
</div>
{isInline ? (
/* Inline mode: show refresh button instead of modal close */
<div className="mission-manager__header-controls">
<button
className="btn-icon"
onClick={() => loadMissions()}
title="Refresh"
disabled={loading}
aria-label="Refresh missions"
data-testid="mission-refresh-btn"
>
<RefreshCw size={16} className={loading ? "spin" : ""} />
</button>
</div>
) : (
{!isInline && (
/* Modal mode: show close button */
<button
className="modal-close"

View File

@@ -1111,12 +1111,12 @@ describe("MissionManager", () => {
});
});
it("shows refresh button in inline mode header", async () => {
it("does not show refresh button in inline mode", async () => {
globalThis.fetch = vi.fn().mockResolvedValue(mockApiResponse([]));
render(<MissionManager isOpen={true} isInline={true} onClose={vi.fn()} addToast={vi.fn()} />);
await waitFor(() => {
expect(screen.getByTestId("mission-refresh-btn")).toBeDefined();
expect(screen.queryByTestId("mission-refresh-btn")).toBeNull();
});
});
@@ -1129,30 +1129,6 @@ describe("MissionManager", () => {
});
});
it("refresh button triggers loadMissions when clicked in inline mode", async () => {
const fetchMock = vi.fn().mockResolvedValue(mockApiResponse([]));
globalThis.fetch = fetchMock;
render(<MissionManager isOpen={true} isInline={true} onClose={vi.fn()} addToast={vi.fn()} />);
// Wait for initial load
await waitFor(() => {
expect(screen.getByText("No missions yet. Create one to start planning.")).toBeDefined();
});
// Reset fetch mock to track reload
fetchMock.mockClear();
fetchMock.mockResolvedValueOnce(mockApiResponse([]));
// Click refresh button
fireEvent.click(screen.getByTestId("mission-refresh-btn"));
// Verify missions were fetched again
await waitFor(() => {
expect(fetchMock).toHaveBeenCalled();
});
});
it("inline mode header has inline class modifier for styling parity with agents view", async () => {
globalThis.fetch = vi.fn().mockResolvedValue(mockApiResponse([]));
render(<MissionManager isOpen={true} isInline={true} onClose={vi.fn()} addToast={vi.fn()} />);