mirror of
https://github.com/bitwarden/browser
synced 2026-01-03 09:03:32 +00:00
[PM-328] Move common/importer to libs/importer (tools-migration) (#5060)
* 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
This commit is contained in:
committed by
GitHub
parent
7cfabf053c
commit
a5a12a6723
88
libs/importer/spec/onepassword-win-csv-importer.spec.ts
Normal file
88
libs/importer/spec/onepassword-win-csv-importer.spec.ts
Normal file
@@ -0,0 +1,88 @@
|
||||
import { FieldType } from "@bitwarden/common/enums/fieldType";
|
||||
import { CipherType } from "@bitwarden/common/vault/enums/cipher-type";
|
||||
import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view";
|
||||
import { FieldView } from "@bitwarden/common/vault/models/view/field.view";
|
||||
|
||||
import { OnePasswordWinCsvImporter } from "../src/importers";
|
||||
|
||||
import { data as creditCardData } from "./test-data/onepassword-csv/credit-card.windows.csv";
|
||||
import { data as identityData } from "./test-data/onepassword-csv/identity.windows.csv";
|
||||
import { data as multiTypeData } from "./test-data/onepassword-csv/multiple-items.windows.csv";
|
||||
|
||||
function expectIdentity(cipher: CipherView) {
|
||||
expect(cipher.type).toBe(CipherType.Identity);
|
||||
|
||||
expect(cipher.identity).toEqual(
|
||||
expect.objectContaining({
|
||||
firstName: "first name",
|
||||
middleName: "mi",
|
||||
lastName: "last name",
|
||||
username: "userNam3",
|
||||
company: "bitwarden",
|
||||
phone: "8005555555",
|
||||
email: "email@bitwarden.com",
|
||||
})
|
||||
);
|
||||
|
||||
expect(cipher.fields).toEqual(
|
||||
expect.arrayContaining([
|
||||
Object.assign(new FieldView(), {
|
||||
type: FieldType.Text,
|
||||
name: "address",
|
||||
value: "address city state zip us",
|
||||
}),
|
||||
])
|
||||
);
|
||||
}
|
||||
|
||||
function expectCreditCard(cipher: CipherView) {
|
||||
expect(cipher.type).toBe(CipherType.Card);
|
||||
|
||||
expect(cipher.card).toEqual(
|
||||
expect.objectContaining({
|
||||
number: "4111111111111111",
|
||||
code: "111",
|
||||
cardholderName: "test",
|
||||
expMonth: "1",
|
||||
expYear: "1970",
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
describe("1Password windows CSV Importer", () => {
|
||||
let importer: OnePasswordWinCsvImporter;
|
||||
beforeEach(() => {
|
||||
importer = new OnePasswordWinCsvImporter();
|
||||
});
|
||||
|
||||
it("should parse identity records", async () => {
|
||||
const result = await importer.parse(identityData);
|
||||
|
||||
expect(result).not.toBeNull();
|
||||
expect(result.success).toBe(true);
|
||||
expect(result.ciphers.length).toBe(1);
|
||||
const cipher = result.ciphers[0];
|
||||
expectIdentity(cipher);
|
||||
});
|
||||
|
||||
it("should parse credit card records", async () => {
|
||||
const result = await importer.parse(creditCardData);
|
||||
|
||||
expect(result).not.toBeNull();
|
||||
expect(result.success).toBe(true);
|
||||
expect(result.ciphers.length).toBe(1);
|
||||
const cipher = result.ciphers[0];
|
||||
expectCreditCard(cipher);
|
||||
});
|
||||
|
||||
it("should parse csv's with multiple record types", async () => {
|
||||
const result = await importer.parse(multiTypeData);
|
||||
|
||||
expect(result).not.toBeNull();
|
||||
expect(result.success).toBe(true);
|
||||
expect(result.ciphers.length).toBe(4);
|
||||
|
||||
expectIdentity(result.ciphers[1]);
|
||||
expectCreditCard(result.ciphers[2]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user