mirror of
https://github.com/bitwarden/browser
synced 2024-12-27 10:23:48 +01:00
a5a12a6723
* Create and register new libs/importer Create package.json Create tsconfig Create jest.config Extend shared and root tsconfig and jest.configs Register with eslint * Move importer-related files to libs/importer * Move importer-spec-related files to libs/importer Move import.service.spec * Update package-lock.json * Set CODEOWNERS for new libs/importer * Register libs/importer with cli and fix imports * Register libs/importer with web and fix imports * Move importOption into models Rename importOptions to import-options * Fix linting issues after updating prettier * Only expose necessary files from libs/importer Fix tsconfig files - Removes the trailing /index on imports in web/cli As the spec-files no longer can access the internals via @bitwarden/importer they import by path (../src/importers) * Add barrel files to vendors with more than one importer
48 lines
1.6 KiB
TypeScript
48 lines
1.6 KiB
TypeScript
import { FolderView } from "@bitwarden/common/vault/models/view/folder.view";
|
|
|
|
import { KeePass2XmlImporter } from "../src/importers";
|
|
|
|
import {
|
|
TestData,
|
|
TestData1,
|
|
TestData2,
|
|
} from "./test-data/keepass2-xml/keepass2-xml-importer-testdata";
|
|
|
|
describe("KeePass2 Xml Importer", () => {
|
|
it("should parse XML data", async () => {
|
|
const importer = new KeePass2XmlImporter();
|
|
const result = await importer.parse(TestData);
|
|
expect(result != null).toBe(true);
|
|
});
|
|
|
|
it("parse XML should contains folders", async () => {
|
|
const importer = new KeePass2XmlImporter();
|
|
const folder = new FolderView();
|
|
folder.name = "Folder2";
|
|
const actual = [folder];
|
|
|
|
const result = await importer.parse(TestData);
|
|
expect(result.folders).toEqual(actual);
|
|
});
|
|
|
|
it("parse XML should contains login details", async () => {
|
|
const importer = new KeePass2XmlImporter();
|
|
const result = await importer.parse(TestData);
|
|
expect(result.ciphers[0].login.uri != null).toBe(true);
|
|
expect(result.ciphers[0].login.username != null).toBe(true);
|
|
expect(result.ciphers[0].login.password != null).toBe(true);
|
|
});
|
|
|
|
it("should return error with missing root tag", async () => {
|
|
const importer = new KeePass2XmlImporter();
|
|
const result = await importer.parse(TestData1);
|
|
expect(result.errorMessage).toBe("Missing `KeePassFile > Root` node.");
|
|
});
|
|
|
|
it("should return error with missing KeePassFile tag", async () => {
|
|
const importer = new KeePass2XmlImporter();
|
|
const result = await importer.parse(TestData2);
|
|
expect(result.success).toBe(false);
|
|
});
|
|
});
|