diff --git a/frontend/src/lib/components/header/AccountMenu.svelte b/frontend/src/lib/components/header/AccountMenu.svelte
index 6eee6d13883..1d26d497ca4 100644
--- a/frontend/src/lib/components/header/AccountMenu.svelte
+++ b/frontend/src/lib/components/header/AccountMenu.svelte
@@ -11,7 +11,7 @@
import LoginIconOnly from "./LoginIconOnly.svelte";
import Logout from "./Logout.svelte";
import { IconUser, Popover } from "@dfinity/gix-components";
- import ExportIcpTransactionsButton from "$lib/components/header/ExportIcpTransactionsButton.svelte";
+ import ExportIcpTransactionsButton from "$lib/components/header/ExportIcpTransactionsButton.svelte";
let visible = false;
let button: HTMLButtonElement | undefined;
@@ -44,7 +44,10 @@
{#if $ENABLE_EXPORT_NEURONS_REPORT}
-
+
+
{/if}
diff --git a/frontend/src/tests/lib/components/header/AccountMenu.spec.ts b/frontend/src/tests/lib/components/header/AccountMenu.spec.ts
index 04b3c709608..00de749cd52 100644
--- a/frontend/src/tests/lib/components/header/AccountMenu.spec.ts
+++ b/frontend/src/tests/lib/components/header/AccountMenu.spec.ts
@@ -160,6 +160,42 @@ describe("AccountMenu", () => {
expect(await accountMenuPo.isOpen()).toBe(false);
});
});
+
+ it("should not show the Export ICP Transactions Report button if feature flag is off(by default)", async () => {
+ const { accountMenuPo } = renderComponent();
+
+ await accountMenuPo.openMenu();
+
+ expect(
+ await accountMenuPo.getExportIcpTransactionsButtonPo().isPresent()
+ ).toBe(false);
+ });
+
+ it("should show Export Icp Transactinos Report button if feature flag is on", async () => {
+ overrideFeatureFlagsStore.setFlag("ENABLE_EXPORT_NEURONS_REPORT", true);
+ const { accountMenuPo } = renderComponent();
+
+ await accountMenuPo.openMenu();
+
+ expect(
+ await accountMenuPo.getExportIcpTransactionsButtonPo().isPresent()
+ ).toBe(true);
+ });
+
+ it("should close the menu once the Export Icp Transactions Report button is clicked", async () => {
+ overrideFeatureFlagsStore.setFlag("ENABLE_EXPORT_NEURONS_REPORT", true);
+ const { accountMenuPo } = renderComponent();
+
+ expect(await accountMenuPo.isOpen()).toBe(false);
+
+ await accountMenuPo.openMenu();
+ expect(await accountMenuPo.isOpen()).toBe(true);
+
+ await accountMenuPo.getExportIcpTransactionsButtonPo().click();
+ await waitFor(async () => {
+ expect(await accountMenuPo.isOpen()).toBe(false);
+ });
+ });
});
});
});
diff --git a/frontend/src/tests/page-objects/AccountMenu.page-object.ts b/frontend/src/tests/page-objects/AccountMenu.page-object.ts
index ac600c7d77d..a2dd8696b08 100644
--- a/frontend/src/tests/page-objects/AccountMenu.page-object.ts
+++ b/frontend/src/tests/page-objects/AccountMenu.page-object.ts
@@ -1,5 +1,6 @@
import { BasePageObject } from "$tests/page-objects/base.page-object";
import { ButtonPo } from "$tests/page-objects/Button.page-object";
+import { ExportIcpTransactionsButtonPo } from "$tests/page-objects/ExportIcpTransactionsButton.page-object";
import { ExportNeuronsButtonPo } from "$tests/page-objects/ExportNeuronsButton.page-object";
import type { PageObjectElement } from "$tests/types/page-object.types";
import { AccountDetailsPo } from "./AccountDetails.page-object";
@@ -70,4 +71,8 @@ export class AccountMenuPo extends BasePageObject {
getExportNeuronsButtonPo(): ExportNeuronsButtonPo {
return ExportNeuronsButtonPo.under({ element: this.root });
}
+
+ getExportIcpTransactionsButtonPo(): ExportIcpTransactionsButtonPo {
+ return ExportIcpTransactionsButtonPo.under({ element: this.root });
+ }
}