From 9f33fc14e0628a68d32957171aa879c30041f27e Mon Sep 17 00:00:00 2001 From: Kevin Le Seigle Date: Wed, 12 Jun 2024 16:11:40 +0200 Subject: [PATCH] fix: keep previously renamed accounts value --- .changeset/strong-dingos-end.md | 5 ++++ libs/live-wallet/src/store.test.ts | 38 ++++++++++++++++++++++++++++++ libs/live-wallet/src/store.ts | 5 +++- 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 .changeset/strong-dingos-end.md create mode 100644 libs/live-wallet/src/store.test.ts diff --git a/.changeset/strong-dingos-end.md b/.changeset/strong-dingos-end.md new file mode 100644 index 00000000000..77deceb2808 --- /dev/null +++ b/.changeset/strong-dingos-end.md @@ -0,0 +1,5 @@ +--- +"@ledgerhq/live-wallet": minor +--- + +Keep previously renamed accounts alias diff --git a/libs/live-wallet/src/store.test.ts b/libs/live-wallet/src/store.test.ts new file mode 100644 index 00000000000..c3ca1e30148 --- /dev/null +++ b/libs/live-wallet/src/store.test.ts @@ -0,0 +1,38 @@ +import { handlers, initialState } from "./store"; +import type { Account } from "@ledgerhq/types-live"; + +const ETHEREUM_ACCOUNT = "js:2:ethereum:0x23304541225D9b0BA2368B55ERTYF:"; +const POLKADOT_ACCOUNT = + "js:2:polkadot:133vQbgqtsMufsPbhH9uHWLsdfdsfsdfxw2yRjxC56Tcztg6VeLK:polkadotbip44:"; + +const ETHEREUM_ACCOUNT_NAME = "My name is ethereum"; +const POLKADOT_ACCOUNT_NAME = "My name is polkadot"; + +initialState.accountNames.set(ETHEREUM_ACCOUNT, ETHEREUM_ACCOUNT_NAME); +initialState.accountNames.set(POLKADOT_ACCOUNT, POLKADOT_ACCOUNT_NAME); + +initialState.starredAccountIds.add(ETHEREUM_ACCOUNT); + +const NEW_POLKADOT_ACCOUNT = + "js:2:polkadot:133vQbgqtsMufsPbhH9uHWLsdfdsfsdfxw2yRjxC5azeazeazezaVeLK:polkadotbip44:"; +const NEW_POLKADOT_ACCOUNT_NAME = "My name is new polkadot"; + +describe("Wallet store", () => { + it("should add an account", (): void => { + const editedNames = new Map(); + editedNames.set(NEW_POLKADOT_ACCOUNT, NEW_POLKADOT_ACCOUNT_NAME); + const result = handlers.ADD_ACCOUNTS(initialState, { + payload: { + allAccounts: [ + { id: ETHEREUM_ACCOUNT, type: "Account", currency: { name: "Ethereum" } } as Account, + { id: POLKADOT_ACCOUNT, type: "Account", currency: { name: "Polkadot" } } as Account, + { id: NEW_POLKADOT_ACCOUNT, type: "Account", currency: { name: "Polkadot" } } as Account, + ], + editedNames, + }, + }); + expect(result.accountNames.get(ETHEREUM_ACCOUNT)).toBe(ETHEREUM_ACCOUNT_NAME); + expect(result.accountNames.get(POLKADOT_ACCOUNT)).toBe(POLKADOT_ACCOUNT_NAME); + expect(result.accountNames.get(NEW_POLKADOT_ACCOUNT)).toBe(NEW_POLKADOT_ACCOUNT_NAME); + }); +}); diff --git a/libs/live-wallet/src/store.ts b/libs/live-wallet/src/store.ts index e7098d0abdf..e2ca6f25bca 100644 --- a/libs/live-wallet/src/store.ts +++ b/libs/live-wallet/src/store.ts @@ -83,7 +83,10 @@ export const handlers: WalletHandlers = { ADD_ACCOUNTS: (state, { payload: { allAccounts, editedNames } }) => { const accountNames = new Map(state.accountNames); for (const account of allAccounts) { - const name = editedNames.get(account.id) || getDefaultAccountName(account); + const name = + editedNames.get(account.id) || + accountNames.get(account.id) || + getDefaultAccountName(account); accountNames.set(account.id, name); } return { ...state, accountNames };