Fix totp import on Dashlane csv importer
This commit is contained in:
parent
9d2848d0f1
commit
077816997f
|
@ -2,6 +2,7 @@ import { CipherType } from "@bitwarden/common/vault/enums";
|
||||||
|
|
||||||
import { DashlaneCsvImporter } from "../src/importers";
|
import { DashlaneCsvImporter } from "../src/importers";
|
||||||
|
|
||||||
|
import { credentialsData_otpUrl } from "./test-data/dashlane-csv/credentials-otpurl.csv";
|
||||||
import { credentialsData } from "./test-data/dashlane-csv/credentials.csv";
|
import { credentialsData } from "./test-data/dashlane-csv/credentials.csv";
|
||||||
import { identityData } from "./test-data/dashlane-csv/id.csv";
|
import { identityData } from "./test-data/dashlane-csv/id.csv";
|
||||||
import { multiplePersonalInfoData } from "./test-data/dashlane-csv/multiple-personal-info.csv";
|
import { multiplePersonalInfoData } from "./test-data/dashlane-csv/multiple-personal-info.csv";
|
||||||
|
@ -30,6 +31,14 @@ describe("Dashlane CSV Importer", () => {
|
||||||
expect(cipher.notes).toEqual("some note for example.com");
|
expect(cipher.notes).toEqual("some note for example.com");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should parse login with totp when given otpUrl instead of otpSecret", async () => {
|
||||||
|
const result = await importer.parse(credentialsData_otpUrl);
|
||||||
|
expect(result != null).toBe(true);
|
||||||
|
|
||||||
|
const cipher = result.ciphers.shift();
|
||||||
|
expect(cipher.login.totp).toEqual("anotherTOTPSeed");
|
||||||
|
});
|
||||||
|
|
||||||
it("should parse an item and create a folder", async () => {
|
it("should parse an item and create a folder", async () => {
|
||||||
const result = await importer.parse(credentialsData);
|
const result = await importer.parse(credentialsData);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
export const credentialsData_otpUrl = `username,username2,username3,title,password,note,url,category,otpUrl
|
||||||
|
jdoe,,,example.com,somePassword,some note for example.com,https://www.example.com,Entertainment,anotherTOTPSeed`;
|
|
@ -119,7 +119,7 @@ export class DashlaneCsvImporter extends BaseImporter implements Importer {
|
||||||
cipher.notes = row.note;
|
cipher.notes = row.note;
|
||||||
cipher.login.username = row.username;
|
cipher.login.username = row.username;
|
||||||
cipher.login.password = row.password;
|
cipher.login.password = row.password;
|
||||||
cipher.login.totp = row.otpSecret;
|
cipher.login.totp = Object.keys(row).includes("otpUrl") ? row.otpUrl : row.otpSecret;
|
||||||
cipher.login.uris = this.makeUriArray(row.url);
|
cipher.login.uris = this.makeUriArray(row.url);
|
||||||
|
|
||||||
this.importUnmappedFields(cipher, row, _mappedCredentialsColumns);
|
this.importUnmappedFields(cipher, row, _mappedCredentialsColumns);
|
||||||
|
|
|
@ -8,7 +8,8 @@ export class CredentialsRecord {
|
||||||
note: string;
|
note: string;
|
||||||
url: string;
|
url: string;
|
||||||
category: string;
|
category: string;
|
||||||
otpSecret: string;
|
otpSecret?: string;
|
||||||
|
otpUrl?: string; // Likely introduced by Dashlane as a replacement for `otpSecret`
|
||||||
}
|
}
|
||||||
|
|
||||||
export class PaymentsRecord {
|
export class PaymentsRecord {
|
||||||
|
|
Loading…
Reference in New Issue