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.
This commit is contained in:
r-zakarya
2026-08-02 23:55:04 +01:00
parent f8e78f6940
commit c8518c806d
+3 -1
View File
@@ -220,9 +220,11 @@ plus bas.
**ATTENDU** : les deux drapeaux du fichier sont **réappliqués**. **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. - **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`. - **ACTION** : *Backup now* → supprimer l'entrée → importer le fichier `vault-autobackup-*.json`.
- **ATTENDU** : identique à F1. - **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 ### F3 · CSV étranger → drapeaux à 0
- **ACTION** : importer un CSV sans colonnes favorite/pinned. - **ACTION** : importer un CSV sans colonnes favorite/pinned.