aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lock-wallet-test.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-10-02 09:26:56 -0700
committerAdam Soltys <[email protected]>2026-10-02 09:26:56 -0700
commitfe569ffa701e3f9b54330def31193217eb470ab9 (patch)
treea13f33180c53346f49369f4bd52d03bfa38005e6 /tools/lock-wallet-test.js
parent65aa6c93153b28554127627dde2883a0685eeaff (diff)
downloadcoinosv3-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.js16
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);