mirror of
https://github.com/bitwarden/browser.git
synced 2024-10-31 08:20:37 +01:00
80 lines
1.9 KiB
TypeScript
80 lines
1.9 KiB
TypeScript
import { Jsonify } from "type-fest";
|
|
|
|
import { UriMatchType } from "@bitwarden/common/enums/uriMatchType";
|
|
import { LoginUriData } from "@bitwarden/common/models/data/loginUriData";
|
|
import { EncString } from "@bitwarden/common/models/domain/encString";
|
|
import { LoginUri } from "@bitwarden/common/models/domain/loginUri";
|
|
|
|
import { mockEnc, mockFromJson } from "../../utils";
|
|
|
|
describe("LoginUri", () => {
|
|
let data: LoginUriData;
|
|
|
|
beforeEach(() => {
|
|
data = {
|
|
uri: "encUri",
|
|
match: UriMatchType.Domain,
|
|
};
|
|
});
|
|
|
|
it("Convert from empty", () => {
|
|
const data = new LoginUriData();
|
|
const loginUri = new LoginUri(data);
|
|
|
|
expect(loginUri).toEqual({
|
|
match: null,
|
|
uri: null,
|
|
});
|
|
});
|
|
|
|
it("Convert", () => {
|
|
const loginUri = new LoginUri(data);
|
|
|
|
expect(loginUri).toEqual({
|
|
match: 0,
|
|
uri: { encryptedString: "encUri", encryptionType: 0 },
|
|
});
|
|
});
|
|
|
|
it("toLoginUriData", () => {
|
|
const loginUri = new LoginUri(data);
|
|
expect(loginUri.toLoginUriData()).toEqual(data);
|
|
});
|
|
|
|
it("Decrypt", async () => {
|
|
const loginUri = new LoginUri();
|
|
loginUri.match = UriMatchType.Exact;
|
|
loginUri.uri = mockEnc("uri");
|
|
|
|
const view = await loginUri.decrypt(null);
|
|
|
|
expect(view).toEqual({
|
|
_canLaunch: null,
|
|
_domain: null,
|
|
_host: null,
|
|
_hostname: null,
|
|
_uri: "uri",
|
|
match: 3,
|
|
});
|
|
});
|
|
|
|
describe("fromJSON", () => {
|
|
it("initializes nested objects", () => {
|
|
jest.spyOn(EncString, "fromJSON").mockImplementation(mockFromJson);
|
|
|
|
const actual = LoginUri.fromJSON({
|
|
uri: "myUri",
|
|
} as Jsonify<LoginUri>);
|
|
|
|
expect(actual).toEqual({
|
|
uri: "myUri_fromJSON",
|
|
});
|
|
expect(actual).toBeInstanceOf(LoginUri);
|
|
});
|
|
|
|
it("returns null if object is null", () => {
|
|
expect(LoginUri.fromJSON(null)).toBeNull();
|
|
});
|
|
});
|
|
});
|