// Adding the first wallet left no address active until the popup was reopened, // so Send and Receive on Home only said "No active address selected." // (https://git.eeqj.de/sneak/AutistMask/issues/512). Each test boots a fresh // install, adds the first wallet through one of the three import tabs, and // opens Receive from Home in the same popup. const { HDNodeWallet, Mnemonic, Wallet } = require("ethers"); const { bootPopup, cleanupPopup } = require("./support/popupBoot"); const PHRASE = "abandon abandon abandon abandon abandon abandon " + "abandon abandon abandon abandon abandon about"; const PRIVATE_KEY = "0x" + "11".repeat(32); // The master key of PHRASE, so its first address is the phrase's. const XPRV = HDNodeWallet.fromSeed( Mnemonic.fromPhrase(PHRASE).computeSeed(), ).extendedKey; const PASSWORD = "correct horse battery staple"; const PHRASE_ADDRESS = HDNodeWallet.fromPhrase(PHRASE).address; const TABS = [ { tab: "tab-mnemonic", field: "wallet-mnemonic", secret: PHRASE, address: PHRASE_ADDRESS, }, { tab: "tab-privkey", field: "import-private-key", secret: PRIVATE_KEY, address: new Wallet(PRIVATE_KEY).address, }, { tab: "tab-xprv", field: "import-xprv-key", secret: XPRV, address: PHRASE_ADDRESS, }, ]; afterEach(() => { cleanupPopup(); }); describe("the first wallet's first address is active right away", () => { test.each(TABS)( "added from $tab, Receive opens on it", async ({ tab, field, secret, address }) => { const page = await bootPopup(undefined); expect(page.pageErrors).toEqual([]); await page.click("btn-welcome-add"); await page.click(tab); page.node(field).value = secret; page.node("add-wallet-password").value = PASSWORD; page.node("add-wallet-password-confirm").value = PASSWORD; await page.click("btn-add-wallet-confirm"); expect(page.visibleViews()).toEqual(["main"]); await page.click("btn-main-receive"); expect(page.visibleViews()).toEqual(["receive"]); expect(page.node("receive-address-block").dataset.full).toBe( address, ); }, ); });