mirror of
https://github.com/bitwarden/browser.git
synced 2024-12-11 14:48:46 +01:00
Add tests to verify importing German and Dutch headers work
This commit is contained in:
parent
19663d9587
commit
07b2aaee6c
@ -3,10 +3,46 @@ import { CipherType } from "@bitwarden/common/vault/enums";
|
||||
import { PasswordXPCsvImporter } from "../src/importers";
|
||||
import { ImportResult } from "../src/models/import-result";
|
||||
|
||||
import { dutchHeaders } from "./test-data/passwordxp-csv/dutch-headers";
|
||||
import { germanHeaders } from "./test-data/passwordxp-csv/german-headers";
|
||||
import { noFolder } from "./test-data/passwordxp-csv/no-folder.csv";
|
||||
import { withFolders } from "./test-data/passwordxp-csv/passwordxp-with-folders.csv";
|
||||
import { withoutFolders } from "./test-data/passwordxp-csv/passwordxp-without-folders.csv";
|
||||
|
||||
async function importLoginWithCustomFields(importer: PasswordXPCsvImporter, csvData: string) {
|
||||
const result: ImportResult = await importer.parse(csvData);
|
||||
expect(result.success).toBe(true);
|
||||
|
||||
const cipher = result.ciphers.shift();
|
||||
expect(cipher.type).toBe(CipherType.Login);
|
||||
expect(cipher.name).toBe("Title2");
|
||||
expect(cipher.notes).toBe("Test Notes");
|
||||
expect(cipher.login.username).toBe("Username2");
|
||||
expect(cipher.login.password).toBe("12345678");
|
||||
expect(cipher.login.uris[0].uri).toBe("http://URL2.com");
|
||||
|
||||
expect(cipher.fields.length).toBe(5);
|
||||
let field = cipher.fields.shift();
|
||||
expect(field.name).toBe("Account");
|
||||
expect(field.value).toBe("Account2");
|
||||
|
||||
field = cipher.fields.shift();
|
||||
expect(field.name).toBe("Modified");
|
||||
expect(field.value).toBe("27-3-2024 08:11:21");
|
||||
|
||||
field = cipher.fields.shift();
|
||||
expect(field.name).toBe("Created");
|
||||
expect(field.value).toBe("27-3-2024 08:11:21");
|
||||
|
||||
field = cipher.fields.shift();
|
||||
expect(field.name).toBe("Expire on");
|
||||
expect(field.value).toBe("27-5-2024 08:11:21");
|
||||
|
||||
field = cipher.fields.shift();
|
||||
expect(field.name).toBe("Modified by");
|
||||
expect(field.value).toBe("someone");
|
||||
}
|
||||
|
||||
describe("PasswordXPCsvImporter", () => {
|
||||
let importer: PasswordXPCsvImporter;
|
||||
|
||||
@ -61,38 +97,16 @@ describe("PasswordXPCsvImporter", () => {
|
||||
expect(cipher.login.uris[0].uri).toBe("http://test");
|
||||
});
|
||||
|
||||
it("should parse CSV data and import unmapped columns as custom fields", async () => {
|
||||
const result: ImportResult = await importer.parse(withoutFolders);
|
||||
expect(result.success).toBe(true);
|
||||
it("should parse CSV data with English headers and import unmapped columns as custom fields", async () => {
|
||||
await importLoginWithCustomFields(importer, withoutFolders);
|
||||
});
|
||||
|
||||
const cipher = result.ciphers.shift();
|
||||
expect(cipher.type).toBe(CipherType.Login);
|
||||
expect(cipher.name).toBe("Title2");
|
||||
expect(cipher.notes).toBe("Test Notes");
|
||||
expect(cipher.login.username).toBe("Username2");
|
||||
expect(cipher.login.password).toBe("12345678");
|
||||
expect(cipher.login.uris[0].uri).toBe("http://URL2.com");
|
||||
it("should parse CSV data with German headers and import unmapped columns as custom fields", async () => {
|
||||
await importLoginWithCustomFields(importer, germanHeaders);
|
||||
});
|
||||
|
||||
expect(cipher.fields.length).toBe(5);
|
||||
let field = cipher.fields.shift();
|
||||
expect(field.name).toBe("Account");
|
||||
expect(field.value).toBe("Account2");
|
||||
|
||||
field = cipher.fields.shift();
|
||||
expect(field.name).toBe("Modified");
|
||||
expect(field.value).toBe("27-3-2024 08:11:21");
|
||||
|
||||
field = cipher.fields.shift();
|
||||
expect(field.name).toBe("Created");
|
||||
expect(field.value).toBe("27-3-2024 08:11:21");
|
||||
|
||||
field = cipher.fields.shift();
|
||||
expect(field.name).toBe("Expire on");
|
||||
expect(field.value).toBe("27-5-2024 08:11:21");
|
||||
|
||||
field = cipher.fields.shift();
|
||||
expect(field.name).toBe("Modified by");
|
||||
expect(field.value).toBe("someone");
|
||||
it("should parse CSV data with Dutch headers and import unmapped columns as custom fields", async () => {
|
||||
await importLoginWithCustomFields(importer, dutchHeaders);
|
||||
});
|
||||
|
||||
it("should parse CSV data with folders and assign items to them", async () => {
|
||||
|
@ -0,0 +1,7 @@
|
||||
export const dutchHeaders = `Titel;Gebruikersnaam;Account;URL;Wachtwoord;Gewijzigd;Gemaakt;Verloopt op;Beschrijving;Gewijzigd door
|
||||
>>>
|
||||
Title2;Username2;Account2;http://URL2.com;12345678;27-3-2024 08:11:21;27-3-2024 08:11:21;27-5-2024 08:11:21;Test Notes;someone
|
||||
Title Test 1;Username1;Account1;http://URL1.com;Password1;27-3-2024 08:10:52;27-3-2024 08:10:52;;Test Notes 2;
|
||||
Certificate 1;;;;;27-3-2024 10:22:39;27-3-2024 10:22:39;;Test Notes Certicate 1;
|
||||
test;testtest;;http://test;test;27-3-2024 12:36:59;27-3-2024 12:36:59;;Test Notes 3;
|
||||
`;
|
@ -0,0 +1,7 @@
|
||||
export const germanHeaders = `Titel;Benutzername;Konto;URL;Passwort;Geändert am;Erstellt am;Läuft ab am;Beschreibung;Geändert von
|
||||
>>>
|
||||
Title2;Username2;Account2;http://URL2.com;12345678;27-3-2024 08:11:21;27-3-2024 08:11:21;27-5-2024 08:11:21;Test Notes;someone
|
||||
Title Test 1;Username1;Account1;http://URL1.com;Password1;27-3-2024 08:10:52;27-3-2024 08:10:52;;Test Notes 2;
|
||||
Certificate 1;;;;;27-3-2024 10:22:39;27-3-2024 10:22:39;;Test Notes Certicate 1;
|
||||
test;testtest;;http://test;test;27-3-2024 12:36:59;27-3-2024 12:36:59;;Test Notes 3;
|
||||
`;
|
Loading…
Reference in New Issue
Block a user