diff --git a/libs/common/src/models/export/card.export.ts b/libs/common/src/models/export/card.export.ts index 13a6ab54911..c893a7559e0 100644 --- a/libs/common/src/models/export/card.export.ts +++ b/libs/common/src/models/export/card.export.ts @@ -27,12 +27,12 @@ export class CardExport { } static toDomain(req: CardExport, domain = new CardDomain()) { - domain.cardholderName = new EncString(req.cardholderName ?? ""); - domain.brand = new EncString(req.brand ?? ""); - domain.number = new EncString(req.number ?? ""); - domain.expMonth = new EncString(req.expMonth ?? ""); - domain.expYear = new EncString(req.expYear ?? ""); - domain.code = new EncString(req.code ?? ""); + domain.cardholderName = req.cardholderName ? new EncString(req.cardholderName) : undefined; + domain.brand = req.brand ? new EncString(req.brand) : undefined; + domain.number = req.number ? new EncString(req.number) : undefined; + domain.expMonth = req.expMonth ? new EncString(req.expMonth) : undefined; + domain.expYear = req.expYear ? new EncString(req.expYear) : undefined; + domain.code = req.code ? new EncString(req.code) : undefined; return domain; } diff --git a/libs/common/src/models/export/identity.export.ts b/libs/common/src/models/export/identity.export.ts index c61c859e87d..455fcf0a10a 100644 --- a/libs/common/src/models/export/identity.export.ts +++ b/libs/common/src/models/export/identity.export.ts @@ -51,24 +51,24 @@ export class IdentityExport { } static toDomain(req: IdentityExport, domain = new IdentityDomain()) { - domain.title = new EncString(req.title ?? ""); - domain.firstName = new EncString(req.firstName ?? ""); - domain.middleName = new EncString(req.middleName ?? ""); - domain.lastName = new EncString(req.lastName ?? ""); - domain.address1 = new EncString(req.address1 ?? ""); - domain.address2 = new EncString(req.address2 ?? ""); - domain.address3 = new EncString(req.address3 ?? ""); - domain.city = new EncString(req.city ?? ""); - domain.state = new EncString(req.state ?? ""); - domain.postalCode = new EncString(req.postalCode ?? ""); - domain.country = new EncString(req.country ?? ""); - domain.company = new EncString(req.company ?? ""); - domain.email = new EncString(req.email ?? ""); - domain.phone = new EncString(req.phone ?? ""); - domain.ssn = new EncString(req.ssn ?? ""); - domain.username = new EncString(req.username ?? ""); - domain.passportNumber = new EncString(req.passportNumber ?? ""); - domain.licenseNumber = new EncString(req.licenseNumber ?? ""); + domain.title = req.title ? new EncString(req.title) : undefined; + domain.firstName = req.firstName ? new EncString(req.firstName) : undefined; + domain.middleName = req.middleName ? new EncString(req.middleName) : undefined; + domain.lastName = req.lastName ? new EncString(req.lastName) : undefined; + domain.address1 = req.address1 ? new EncString(req.address1) : undefined; + domain.address2 = req.address2 ? new EncString(req.address2) : undefined; + domain.address3 = req.address3 ? new EncString(req.address3) : undefined; + domain.city = req.city ? new EncString(req.city) : undefined; + domain.state = req.state ? new EncString(req.state) : undefined; + domain.postalCode = req.postalCode ? new EncString(req.postalCode) : undefined; + domain.country = req.country ? new EncString(req.country) : undefined; + domain.company = req.company ? new EncString(req.company) : undefined; + domain.email = req.email ? new EncString(req.email) : undefined; + domain.phone = req.phone ? new EncString(req.phone) : undefined; + domain.ssn = req.ssn ? new EncString(req.ssn) : undefined; + domain.username = req.username ? new EncString(req.username) : undefined; + domain.passportNumber = req.passportNumber ? new EncString(req.passportNumber) : undefined; + domain.licenseNumber = req.licenseNumber ? new EncString(req.licenseNumber) : undefined; return domain; } diff --git a/libs/common/src/models/export/login.export.ts b/libs/common/src/models/export/login.export.ts index 36c947dd1de..ee978f793a0 100644 --- a/libs/common/src/models/export/login.export.ts +++ b/libs/common/src/models/export/login.export.ts @@ -34,9 +34,9 @@ export class LoginExport { if (req.uris != null) { domain.uris = req.uris.map((u) => LoginUriExport.toDomain(u)); } - domain.username = new EncString(req.username); - domain.password = new EncString(req.password); - domain.totp = new EncString(req.totp ?? ""); + domain.username = req.username ? new EncString(req.username) : undefined; + domain.password = req.password ? new EncString(req.password) : undefined; + domain.totp = req.totp ? new EncString(req.totp) : undefined; // Fido2credentials are currently not supported for exports. return domain; diff --git a/libs/tools/export/vault-export/vault-export-core/src/services/individual-vault-export.service.spec.ts b/libs/tools/export/vault-export/vault-export-core/src/services/individual-vault-export.service.spec.ts index 7e9bab609e4..59e94d3144f 100644 --- a/libs/tools/export/vault-export/vault-export-core/src/services/individual-vault-export.service.spec.ts +++ b/libs/tools/export/vault-export/vault-export-core/src/services/individual-vault-export.service.spec.ts @@ -126,19 +126,15 @@ function generateFolder() { } function expectEqualCiphers(ciphers: CipherView[] | Cipher[], jsonResult: string) { - const parsed = JSON.parse(jsonResult); - const actualItems = sanitizeDates(parsed.items); - - const expected: CipherWithIdExport[] = []; + const actual = JSON.stringify(JSON.parse(jsonResult).items); + const items: CipherWithIdExport[] = []; ciphers.forEach((c: CipherView | Cipher) => { const item = new CipherWithIdExport(); item.build(c); - expected.push(item); + items.push(item); }); - const expectedSanitized = sanitizeDates(expected); - - expect(JSON.stringify(actualItems)).toEqual(JSON.stringify(expectedSanitized)); + expect(actual).toEqual(JSON.stringify(items)); } function expectEqualFolderViews(folderViews: FolderView[] | Folder[], jsonResult: string) { @@ -166,18 +162,6 @@ function expectEqualFolders(folders: Folder[], jsonResult: string) { expect(actual).toMatchObject(expected); } -function sanitizeDates(obj: T): T { - const dateKeyRegex = /Date$/i; - return JSON.parse( - JSON.stringify(obj, (key, value) => { - if (key && dateKeyRegex.test(key)) { - return undefined; // omit this property - } - return value; - }), - ); -} - describe("VaultExportService", () => { let exportService: IndividualVaultExportService; let cryptoFunctionService: MockProxy;