diff --git a/web/package/agama-web-ui.changes b/web/package/agama-web-ui.changes index 6d1eac996f..7750e63e15 100644 --- a/web/package/agama-web-ui.changes +++ b/web/package/agama-web-ui.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Mar 24 14:45:14 UTC 2026 - David Diaz + +- Allow downloading logs and config from the installation finished + page (gh#agama-project/agama#3329). + ------------------------------------------------------------------- Thu Mar 19 16:35:10 UTC 2026 - David Diaz diff --git a/web/src/components/core/InstallationFinished.test.tsx b/web/src/components/core/InstallationFinished.test.tsx index 09d58bb41e..ff597647d3 100644 --- a/web/src/components/core/InstallationFinished.test.tsx +++ b/web/src/components/core/InstallationFinished.test.tsx @@ -102,6 +102,25 @@ describe("InstallationFinished", () => { screen.getByRole("button", { name: /Reboot/i }); }); + it("shows the installer options menu", async () => { + installerRender(); + screen.getByRole("button", { name: /More installer options/i }); + }); + + it("includes an option for downloading the logs", async () => { + const { user } = installerRender(); + await user.click(screen.getByRole("button", { name: /More installer options/i })); + const menuitem = screen.getByRole("menuitem", { name: /Download logs/i }); + expect(menuitem).toHaveAttribute("download"); + }); + + it("includes an option for downloading the config", async () => { + const { user } = installerRender(); + await user.click(screen.getByRole("button", { name: /More installer options/i })); + const menuitem = screen.getByRole("menuitem", { name: /Download config/i }); + expect(menuitem).toHaveAttribute("download"); + }); + describe("when running storage config in raw mode", () => { beforeEach(() => { mockUseExtendedConfigFn.mockReturnValue(mockStorageConfig("raw", null)); diff --git a/web/src/components/core/InstallationFinished.tsx b/web/src/components/core/InstallationFinished.tsx index 95e28ca8fd..3bc297f344 100644 --- a/web/src/components/core/InstallationFinished.tsx +++ b/web/src/components/core/InstallationFinished.tsx @@ -32,6 +32,7 @@ import { } from "@patternfly/react-core"; import Page from "~/components/core/Page"; import RebootButton from "~/components/core/RebootButton"; +import InstallerOptionsMenu from "~/components/core/InstallerOptionsMenu"; import SplitInfoLayout from "~/components/layout/SplitInfoLayout"; import { useExtendedConfig } from "~/hooks/model/config"; import { _ } from "~/i18n"; @@ -92,7 +93,7 @@ function InstallationFinished() { const mountTpmAlert = usingTpm(storageConfig); return ( - + }>