diff options
| author | Adam Soltys <[email protected]> | 2026-10-02 09:26:56 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-10-02 09:26:56 -0700 |
| commit | fe569ffa701e3f9b54330def31193217eb470ab9 (patch) | |
| tree | a13f33180c53346f49369f4bd52d03bfa38005e6 /tools/lock-wallet-test.js | |
| parent | 65aa6c93153b28554127627dde2883a0685eeaff (diff) | |
| download | coinosv3-fe569ffa701e3f9b54330def31193217eb470ab9.tar.gz coinosv3-fe569ffa701e3f9b54330def31193217eb470ab9.zip | |
Balance card gear replaces Accounts; Spending's coins live behind it
- The "Accounts" pill on each balance face is now a gear. It opens that
face's settings: Spending leads with its coins (renewal, the
co-operative move to Savings, unilateral exit), then Security (lock,
change password), the recovery phrase, auto-logout; Savings adds its
public key. A wallet with no nostr identity also gets sign-in and
log-out there, since it has no profile page to hold them.
- The exit cost is no longer said under the balance; the Spending
settings state it, always, not only when coin chains run deep.
- The lone Manage link under the balance is gone (the gear is the way
in); warning notices that are about the coins link to the same page.
- The Accounts list, Add wallet and Delete all are no longer reached
from the wallet (Delete all stays behind profile > Log out > forget).
- Tests follow the gear: padlock-ask, lock-wallet and account-access
pass again; cooperative-exit-ui clicks the Spending gear.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Dmcrt9KyNDKVWFKnb8BREo
Diffstat (limited to 'tools/lock-wallet-test.js')
| -rw-r--r-- | tools/lock-wallet-test.js | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/tools/lock-wallet-test.js b/tools/lock-wallet-test.js index 13d2b91..107ccd0 100644 --- a/tools/lock-wallet-test.js +++ b/tools/lock-wallet-test.js @@ -82,8 +82,8 @@ try { await sleep(1000); console.log('\n[the padlock still asks — locking needs a password]'); - // the padlock lives on the Accounts page (the balance card's switcher opens it) - await page.evaluate(() => document.querySelector('.balance-switch')?.click()); + // the padlock lives on the wallet settings page (the balance card's gear) + await page.evaluate(() => document.querySelector('.balance-gear')?.click()); await sleep(600); await page.evaluate(() => { const b = [...document.querySelectorAll('button')].find((n) => n.title === 'Lock wallet'); if (b) b.click(); }); await sleep(600); @@ -91,7 +91,7 @@ try { check('padlock asks even after "Not now"', /protect this device/i.test(txt), txt.slice(0, 120).replace(/\n+/g, ' | ')); await click('button', 'Not now'); await sleep(600); - check('and declining lands back on the Accounts page', /add account/i.test(await body())); + check('and declining lands back on the wallet settings', /security/i.test(await body())); console.log('\n[now with a password]'); await click('button', 'Change password'); @@ -139,13 +139,17 @@ try { check('backing out deletes nothing', (await vaultSize()) > 0); console.log('\n[delete all is the destructive one]'); - await page.evaluate(() => document.querySelector('.balance-switch')?.click()); + // the same road as above, this time all the way: profile → Log out → + // forget all data → the warning → Delete all + await page.evaluate(() => document.querySelector('.header-avatar')?.click()); await sleep(800); - await click('button', 'Delete all'); + await click('button', 'Log out'); + await sleep(500); + await click('button', 'forget all data'); await sleep(600); txt = await body(); check('it warns first', /delete all/i.test(txt) && /(delete|remove|erase|wipe|lose)/i.test(txt), txt.slice(0, 160).replace(/\n+/g, ' | ')); - await page.evaluate(() => { const b = [...document.querySelectorAll('.btn-primary')].find((e) => /delete all/i.test(e.textContent)); if (b) b.click(); }); + await page.evaluate(() => { const b = [...document.querySelectorAll('.confirm-pop button')].find((e) => /delete all/i.test(e.textContent)); if (b) b.click(); }); await sleep(1200); txt = await body(); check('everything is gone', (await vaultSize()) === 0); |
