7100d7d25214
fix: Add recovery popup reopen smoke test (v3.9.8)
- time
- 2026-06-11 20:33 UTC · 4 months ago
- machine
- koh2
- parent
- 689241c96391
↓ peach-browser-7100d7d2.tar.gzatlas at this save
files changed4 files
manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1tests/lock-screen.spec.ts+21 −0manifest.firefox.json+1 −1
@@ -2,7 +2,7 @@22 "_comment_audio_capture": "Firefox does not honor the Chrome 'audioCapture' optional_permission — getUserMedia in WebExtensions is gated solely by the runtime permission prompt. Microphone access for chirp pairing works from the popup under the existing '<all_urls>' host permission; no manifest entry is required or accepted here.",33 "manifest_version": 3,44 "name": "Peach Password Manager",5- "version": "3.9.7",5+ "version": "3.9.8",66 "description": "Zero-knowledge password manager",77 "browser_specific_settings": {88 "gecko": {manifest.json+1 −1
@@ -1,7 +1,7 @@11 {22 "manifest_version": 3,33 "name": "Peach Password Manager",4- "version": "3.9.7",4+ "version": "3.9.8",55 "description": "Zero-knowledge password manager",66 "action": {77 "default_popup": "src/popup/index.html",package.json+1 −1
@@ -1,6 +1,6 @@11 {22 "name": "peach",3- "version": "3.9.7",3+ "version": "3.9.8",44 "description": "Zero-knowledge password manager",55 "license": "GPL-3.0-only",66 "type": "module",tests/lock-screen.spec.ts+21 −0
@@ -165,6 +165,27 @@165165 await ctx.close();166166 });167167 168+ test("LS07d - recovery confirmation survives popup close and reopen", async () => {169+ const { popup } = await setupVault(ctx, "correct horse battery staple");170+ const confirmInputs = popup.locator(".peach-recovery-confirm-input");171+ const recoveryWords = popup.locator(".peach-recovery-word-text");172+173+ await expect(confirmInputs.first()).toBeEnabled({ timeout: 7000 });174+ const words = await recoveryWords.allTextContents();175+ const firstWord = words[2]?.trim();176+ if (!firstWord) throw new Error("missing recovery word for close/reopen smoke test");177+ await confirmInputs.first().fill(firstWord);178+179+ await popup.close();180+181+ const reopened = await loadPopup(ctx);182+ await expect(reopened.popup.locator(".lock-screen--recovery-display")).toBeVisible({ timeout: 5000 });183+ await completeRecoveryConfirmation(reopened.popup);184+185+ await reopened.popup.close();186+ await ctx.close();187+ });188+168189 test("LS08 - correct password unlocks vault", async () => {169190 const { popup } = await setupVault(ctx);170191 await lockVault(popup);