Add synthetic Bitwarden test exports
This commit is contained in:
Vendored
+11
@@ -1,3 +1,14 @@
|
||||
# Synthetic fixtures
|
||||
|
||||
Fixtures in this directory must contain fake credentials only. Never place a real Bitwarden export here.
|
||||
|
||||
## Sample pair
|
||||
|
||||
`sample-export-a.json` and `sample-export-b.json` are synthetic Bitwarden-style exports for manual testing. They intentionally include:
|
||||
|
||||
- An exact login duplicate despite different item IDs, names, folders, favorite flags, casing, and `www.` URL formatting.
|
||||
- A likely duplicate with the same username and URL but different password, TOTP, notes, and custom fields; B has the newer revision date.
|
||||
- Unique login and credit-card records.
|
||||
- A changed secure note that must remain separate for review.
|
||||
|
||||
All values are fake and use `.invalid` domains where applicable.
|
||||
|
||||
Vendored
+77
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"encrypted": false,
|
||||
"folders": [
|
||||
{"id": "folder-work", "name": "Work"},
|
||||
{"id": "folder-personal", "name": "Personal"}
|
||||
],
|
||||
"collections": [],
|
||||
"items": [
|
||||
{
|
||||
"id": "a-exact",
|
||||
"organizationId": null,
|
||||
"folderId": "folder-work",
|
||||
"type": 1,
|
||||
"reprompt": 0,
|
||||
"name": "Example Portal — Old Label",
|
||||
"notes": "Synthetic exact duplicate; safe fake data.",
|
||||
"favorite": false,
|
||||
"login": {
|
||||
"username": "alice@example.invalid",
|
||||
"password": "Fake-Example-Password-123!",
|
||||
"uris": [{"match": null, "uri": "https://example.com"}],
|
||||
"totp": null
|
||||
},
|
||||
"fields": [],
|
||||
"revisionDate": "2026-01-10T12:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"id": "a-conflict",
|
||||
"organizationId": null,
|
||||
"folderId": "folder-work",
|
||||
"type": 1,
|
||||
"reprompt": 0,
|
||||
"name": "Acme Cloud",
|
||||
"notes": "Older synthetic credential.",
|
||||
"favorite": true,
|
||||
"login": {
|
||||
"username": "demo-user",
|
||||
"password": "Old-Fake-Password!",
|
||||
"uris": [{"match": null, "uri": "https://acme.invalid/login"}],
|
||||
"totp": "JBSWY3DPEHPK3PXP"
|
||||
},
|
||||
"fields": [{"name": "Environment", "value": "test", "type": 0}],
|
||||
"revisionDate": "2026-02-01T12:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"id": "a-unique",
|
||||
"organizationId": null,
|
||||
"folderId": "folder-personal",
|
||||
"type": 1,
|
||||
"reprompt": 0,
|
||||
"name": "A Only Service",
|
||||
"notes": "Only in export A.",
|
||||
"favorite": false,
|
||||
"login": {
|
||||
"username": "a-user",
|
||||
"password": "A-Only-Fake-Secret!",
|
||||
"uris": [{"match": null, "uri": "https://a-only.invalid"}],
|
||||
"totp": null
|
||||
},
|
||||
"fields": [],
|
||||
"revisionDate": "2026-01-15T12:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"id": "a-note",
|
||||
"organizationId": null,
|
||||
"folderId": "folder-personal",
|
||||
"type": 2,
|
||||
"reprompt": 0,
|
||||
"name": "Travel Note",
|
||||
"notes": "Passport reminder — synthetic fixture only.",
|
||||
"favorite": false,
|
||||
"secureNote": {"type": 0},
|
||||
"fields": [],
|
||||
"revisionDate": "2026-01-20T12:00:00.000Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
Vendored
+79
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"encrypted": false,
|
||||
"folders": [
|
||||
{"id": "folder-work-b", "name": "Work"},
|
||||
{"id": "folder-personal-b", "name": "Personal"}
|
||||
],
|
||||
"collections": [],
|
||||
"items": [
|
||||
{
|
||||
"id": "b-exact",
|
||||
"organizationId": null,
|
||||
"folderId": "folder-work-b",
|
||||
"type": 1,
|
||||
"reprompt": 0,
|
||||
"name": "Example Portal — New Label",
|
||||
"notes": "Synthetic exact duplicate; safe fake data.",
|
||||
"favorite": true,
|
||||
"login": {
|
||||
"username": "ALICE@EXAMPLE.INVALID",
|
||||
"password": "Fake-Example-Password-123!",
|
||||
"uris": [{"match": null, "uri": "https://www.example.com/"}],
|
||||
"totp": null
|
||||
},
|
||||
"fields": [],
|
||||
"revisionDate": "2026-03-10T12:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"id": "b-conflict",
|
||||
"organizationId": null,
|
||||
"folderId": "folder-work-b",
|
||||
"type": 1,
|
||||
"reprompt": 0,
|
||||
"name": "Acme Cloud",
|
||||
"notes": "Newer synthetic credential.",
|
||||
"favorite": true,
|
||||
"login": {
|
||||
"username": "DEMO-USER",
|
||||
"password": "New-Fake-Password!",
|
||||
"uris": [{"match": null, "uri": "https://www.acme.invalid/login/"}],
|
||||
"totp": "KRSXG5A="
|
||||
},
|
||||
"fields": [{"name": "Environment", "value": "production", "type": 0}],
|
||||
"revisionDate": "2026-03-01T12:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"id": "b-unique",
|
||||
"organizationId": null,
|
||||
"folderId": "folder-personal-b",
|
||||
"type": 3,
|
||||
"reprompt": 0,
|
||||
"name": "Synthetic Reward Card",
|
||||
"notes": "Fake card data; never use.",
|
||||
"favorite": false,
|
||||
"card": {
|
||||
"cardholderName": "Test Person",
|
||||
"brand": "Visa",
|
||||
"number": "4111111111111111",
|
||||
"expMonth": "12",
|
||||
"expYear": "2099",
|
||||
"code": "000"
|
||||
},
|
||||
"fields": [],
|
||||
"revisionDate": "2026-02-20T12:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"id": "b-note",
|
||||
"organizationId": null,
|
||||
"folderId": "folder-personal-b",
|
||||
"type": 2,
|
||||
"reprompt": 0,
|
||||
"name": "Travel Note",
|
||||
"notes": "Passport reminder — synthetic fixture updated.",
|
||||
"favorite": false,
|
||||
"secureNote": {"type": 0},
|
||||
"fields": [{"name": "Source", "value": "B", "type": 0}],
|
||||
"revisionDate": "2026-03-05T12:00:00.000Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user