43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
import { KeePassXCsvImporter } from "../src/importers";
|
|
|
|
import { keepassxTestData } from "./test-data/keepassx-csv/testdata.csv";
|
|
|
|
describe("KeePassX CSV Importer", () => {
|
|
let importer: KeePassXCsvImporter;
|
|
|
|
beforeEach(() => {
|
|
importer = new KeePassXCsvImporter();
|
|
});
|
|
|
|
describe("given login data", () => {
|
|
it("should parse login data when provided valid CSV", async () => {
|
|
const result = await importer.parse(keepassxTestData);
|
|
expect(result != null).toBe(true);
|
|
|
|
const cipher = result.ciphers.shift();
|
|
expect(cipher.name).toEqual("Example Entry");
|
|
expect(cipher.login.username).toEqual("testuser");
|
|
expect(cipher.login.password).toEqual("password123");
|
|
expect(cipher.login.uris.length).toEqual(1);
|
|
const uriView = cipher.login.uris.shift();
|
|
expect(uriView.uri).toEqual("https://example.com");
|
|
expect(cipher.notes).toEqual("Some notes");
|
|
});
|
|
|
|
it("should import TOTP when present in the CSV", async () => {
|
|
const result = await importer.parse(keepassxTestData);
|
|
expect(result != null).toBe(true);
|
|
|
|
const cipher = result.ciphers.pop();
|
|
expect(cipher.name).toEqual("Another Entry");
|
|
expect(cipher.login.username).toEqual("anotheruser");
|
|
expect(cipher.login.password).toEqual("anotherpassword");
|
|
expect(cipher.login.uris.length).toEqual(1);
|
|
const uriView = cipher.login.uris.shift();
|
|
expect(uriView.uri).toEqual("https://another.com");
|
|
expect(cipher.notes).toEqual("Another set of notes");
|
|
expect(cipher.login.totp).toEqual("otpauth://totp/Another?secret=ABCD1234EFGH5678");
|
|
});
|
|
});
|
|
});
|