From c8518c806d98bb37d8debb63e23b980440121cc3 Mon Sep 17 00:00:00 2001 From: r-zakarya <82443831+r-zakarya@users.noreply.github.com> Date: Sun, 2 Aug 2026 23:55:04 +0100 Subject: [PATCH] docs(tests): mark F2 validated, note that the file existing proves nothing A backup encrypted with an empty password looks perfectly valid on disk; only a successful import proves the stored password reached the encryption. --- TEST_SCENARIOS.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/TEST_SCENARIOS.md b/TEST_SCENARIOS.md index 4ea2180..01e79f8 100644 --- a/TEST_SCENARIOS.md +++ b/TEST_SCENARIOS.md @@ -220,9 +220,11 @@ plus bas. **ATTENDU** : les deux drapeaux du fichier sont **réappliqués**. - **Historique** : `pinned` n'était dans aucun container ; `favorite` y était écrit mais **jamais relu** (ni parser, ni body, ni INSERT) → les deux perdus au restore. Puis F1a a marché sans F1b : le mode écrasement passe par `PUT`, qui ignore volontairement `favorite`/`pinned` pour qu'un **sync** ne puisse jamais écraser les drapeaux locaux (device-local par design). L'import les applique donc via les endpoints de bascule dédiés, uniquement quand ils diffèrent. -### F2 · même chose depuis une auto-backup +### F2 · même chose depuis une auto-backup ✅ - **ACTION** : *Backup now* → supprimer l'entrée → importer le fichier `vault-autobackup-*.json`. - **ATTENDU** : identique à F1. +- **La présence du fichier ne prouve RIEN** : si le mot de passe de backup remontait vide de la pref, le conteneur serait produit quand même — chiffré avec une chaîne vide, donc parfaitement valide et impossible à ouvrir avec le vrai mot de passe. Le seul critère est que l'**import le déchiffre** : la modale doit lister le bon nombre d'entrées avec leurs sites et identifiants réels. +- **Pourquoi ce test compte depuis 2026-08-02** : c'est le seul chemin qui lit `autoBackupPwd` depuis la pref DPAPI. Il casserait si `loadAutoBackupConfig(true)` n'était pas passé là où le chiffrement a lieu (cf. E9). ### F3 · CSV étranger → drapeaux à 0 - **ACTION** : importer un CSV sans colonnes favorite/pinned.