mirror of
https://github.com/bitwarden/browser.git
synced 2024-10-31 08:20:37 +01:00
189 lines
6.2 KiB
TypeScript
189 lines
6.2 KiB
TypeScript
import { IdentityData } from "@bitwarden/common/models/data/identityData";
|
|
import { EncString } from "@bitwarden/common/models/domain/encString";
|
|
import { Identity } from "@bitwarden/common/models/domain/identity";
|
|
|
|
import { mockEnc, mockFromJson } from "../../utils";
|
|
|
|
describe("Identity", () => {
|
|
let data: IdentityData;
|
|
|
|
beforeEach(() => {
|
|
data = {
|
|
title: "enctitle",
|
|
firstName: "encfirstName",
|
|
middleName: "encmiddleName",
|
|
lastName: "enclastName",
|
|
address1: "encaddress1",
|
|
address2: "encaddress2",
|
|
address3: "encaddress3",
|
|
city: "enccity",
|
|
state: "encstate",
|
|
postalCode: "encpostalCode",
|
|
country: "enccountry",
|
|
company: "enccompany",
|
|
email: "encemail",
|
|
phone: "encphone",
|
|
ssn: "encssn",
|
|
username: "encusername",
|
|
passportNumber: "encpassportNumber",
|
|
licenseNumber: "enclicenseNumber",
|
|
};
|
|
});
|
|
|
|
it("Convert from empty", () => {
|
|
const data = new IdentityData();
|
|
const identity = new Identity(data);
|
|
|
|
expect(identity).toEqual({
|
|
address1: null,
|
|
address2: null,
|
|
address3: null,
|
|
city: null,
|
|
company: null,
|
|
country: null,
|
|
email: null,
|
|
firstName: null,
|
|
lastName: null,
|
|
licenseNumber: null,
|
|
middleName: null,
|
|
passportNumber: null,
|
|
phone: null,
|
|
postalCode: null,
|
|
ssn: null,
|
|
state: null,
|
|
title: null,
|
|
username: null,
|
|
});
|
|
});
|
|
|
|
it("Convert", () => {
|
|
const identity = new Identity(data);
|
|
|
|
expect(identity).toEqual({
|
|
title: { encryptedString: "enctitle", encryptionType: 0 },
|
|
firstName: { encryptedString: "encfirstName", encryptionType: 0 },
|
|
middleName: { encryptedString: "encmiddleName", encryptionType: 0 },
|
|
lastName: { encryptedString: "enclastName", encryptionType: 0 },
|
|
address1: { encryptedString: "encaddress1", encryptionType: 0 },
|
|
address2: { encryptedString: "encaddress2", encryptionType: 0 },
|
|
address3: { encryptedString: "encaddress3", encryptionType: 0 },
|
|
city: { encryptedString: "enccity", encryptionType: 0 },
|
|
state: { encryptedString: "encstate", encryptionType: 0 },
|
|
postalCode: { encryptedString: "encpostalCode", encryptionType: 0 },
|
|
country: { encryptedString: "enccountry", encryptionType: 0 },
|
|
company: { encryptedString: "enccompany", encryptionType: 0 },
|
|
email: { encryptedString: "encemail", encryptionType: 0 },
|
|
phone: { encryptedString: "encphone", encryptionType: 0 },
|
|
ssn: { encryptedString: "encssn", encryptionType: 0 },
|
|
username: { encryptedString: "encusername", encryptionType: 0 },
|
|
passportNumber: { encryptedString: "encpassportNumber", encryptionType: 0 },
|
|
licenseNumber: { encryptedString: "enclicenseNumber", encryptionType: 0 },
|
|
});
|
|
});
|
|
|
|
it("toIdentityData", () => {
|
|
const identity = new Identity(data);
|
|
expect(identity.toIdentityData()).toEqual(data);
|
|
});
|
|
|
|
it("Decrypt", async () => {
|
|
const identity = new Identity();
|
|
|
|
identity.title = mockEnc("mockTitle");
|
|
identity.firstName = mockEnc("mockFirstName");
|
|
identity.middleName = mockEnc("mockMiddleName");
|
|
identity.lastName = mockEnc("mockLastName");
|
|
identity.address1 = mockEnc("mockAddress1");
|
|
identity.address2 = mockEnc("mockAddress2");
|
|
identity.address3 = mockEnc("mockAddress3");
|
|
identity.city = mockEnc("mockCity");
|
|
identity.state = mockEnc("mockState");
|
|
identity.postalCode = mockEnc("mockPostalCode");
|
|
identity.country = mockEnc("mockCountry");
|
|
identity.company = mockEnc("mockCompany");
|
|
identity.email = mockEnc("mockEmail");
|
|
identity.phone = mockEnc("mockPhone");
|
|
identity.ssn = mockEnc("mockSsn");
|
|
identity.username = mockEnc("mockUsername");
|
|
identity.passportNumber = mockEnc("mockPassportNumber");
|
|
identity.licenseNumber = mockEnc("mockLicenseNumber");
|
|
|
|
const view = await identity.decrypt(null);
|
|
|
|
expect(view).toEqual({
|
|
_firstName: "mockFirstName",
|
|
_lastName: "mockLastName",
|
|
_subTitle: null,
|
|
address1: "mockAddress1",
|
|
address2: "mockAddress2",
|
|
address3: "mockAddress3",
|
|
city: "mockCity",
|
|
company: "mockCompany",
|
|
country: "mockCountry",
|
|
email: "mockEmail",
|
|
licenseNumber: "mockLicenseNumber",
|
|
middleName: "mockMiddleName",
|
|
passportNumber: "mockPassportNumber",
|
|
phone: "mockPhone",
|
|
postalCode: "mockPostalCode",
|
|
ssn: "mockSsn",
|
|
state: "mockState",
|
|
title: "mockTitle",
|
|
username: "mockUsername",
|
|
});
|
|
});
|
|
|
|
describe("fromJSON", () => {
|
|
it("initializes nested objects", () => {
|
|
jest.spyOn(EncString, "fromJSON").mockImplementation(mockFromJson);
|
|
|
|
const actual = Identity.fromJSON({
|
|
firstName: "mockFirstName",
|
|
lastName: "mockLastName",
|
|
address1: "mockAddress1",
|
|
address2: "mockAddress2",
|
|
address3: "mockAddress3",
|
|
city: "mockCity",
|
|
company: "mockCompany",
|
|
country: "mockCountry",
|
|
email: "mockEmail",
|
|
licenseNumber: "mockLicenseNumber",
|
|
middleName: "mockMiddleName",
|
|
passportNumber: "mockPassportNumber",
|
|
phone: "mockPhone",
|
|
postalCode: "mockPostalCode",
|
|
ssn: "mockSsn",
|
|
state: "mockState",
|
|
title: "mockTitle",
|
|
username: "mockUsername",
|
|
});
|
|
|
|
expect(actual).toEqual({
|
|
firstName: "mockFirstName_fromJSON",
|
|
lastName: "mockLastName_fromJSON",
|
|
address1: "mockAddress1_fromJSON",
|
|
address2: "mockAddress2_fromJSON",
|
|
address3: "mockAddress3_fromJSON",
|
|
city: "mockCity_fromJSON",
|
|
company: "mockCompany_fromJSON",
|
|
country: "mockCountry_fromJSON",
|
|
email: "mockEmail_fromJSON",
|
|
licenseNumber: "mockLicenseNumber_fromJSON",
|
|
middleName: "mockMiddleName_fromJSON",
|
|
passportNumber: "mockPassportNumber_fromJSON",
|
|
phone: "mockPhone_fromJSON",
|
|
postalCode: "mockPostalCode_fromJSON",
|
|
ssn: "mockSsn_fromJSON",
|
|
state: "mockState_fromJSON",
|
|
title: "mockTitle_fromJSON",
|
|
username: "mockUsername_fromJSON",
|
|
});
|
|
expect(actual).toBeInstanceOf(Identity);
|
|
});
|
|
|
|
it("returns null if object is null", () => {
|
|
expect(Identity.fromJSON(null)).toBeNull();
|
|
});
|
|
});
|
|
});
|