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
4 files manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1tests/lock-screen.spec.ts+21 −0
manifest.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": {

view file

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",

view file

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",

view file

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);

view file