mirror of
https://github.com/bitwarden/browser.git
synced 2024-12-03 13:33:32 +01:00
5339344630
* Create sessions sync structure * Add observing to session-syncer * Do not run syncer logic in decorator tests * Extract test constants * Change Observables to BehaviorSubject * Move sendMessage to static method in BrowserApi * Implement session sync * only watch in manifest v3 * Use session sync on folder service * Add array observable sync * Bypass cache on update from message * Create feature and dev flags for browser * Protect development-only methods with decorator * Improve todo comments for long-term residency * Use class properties in init * Do not reuse mocks * Use json (de)serialization patterns * Fix failing session storage in dev environment * Split up complex EncString constructor * Default false for decrypted session storage * Try removing hydrate EncString method * PR review * PR test review
66 lines
1.7 KiB
TypeScript
66 lines
1.7 KiB
TypeScript
import { FolderData } from "@bitwarden/common/models/data/folderData";
|
|
import { EncString } from "@bitwarden/common/models/domain/encString";
|
|
import { Folder } from "@bitwarden/common/models/domain/folder";
|
|
|
|
import { mockEnc } from "../../utils";
|
|
|
|
describe("Folder", () => {
|
|
let data: FolderData;
|
|
|
|
beforeEach(() => {
|
|
data = {
|
|
id: "id",
|
|
name: "encName",
|
|
revisionDate: "2022-01-31T12:00:00.000Z",
|
|
};
|
|
});
|
|
|
|
it("Convert", () => {
|
|
const field = new Folder(data);
|
|
|
|
expect(field).toEqual({
|
|
id: "id",
|
|
name: { encryptedString: "encName", encryptionType: 0 },
|
|
revisionDate: new Date("2022-01-31T12:00:00.000Z"),
|
|
});
|
|
});
|
|
|
|
it("Decrypt", async () => {
|
|
const folder = new Folder();
|
|
folder.id = "id";
|
|
folder.name = mockEnc("encName");
|
|
folder.revisionDate = new Date("2022-01-31T12:00:00.000Z");
|
|
|
|
const view = await folder.decrypt();
|
|
|
|
expect(view).toEqual({
|
|
id: "id",
|
|
name: "encName",
|
|
revisionDate: new Date("2022-01-31T12:00:00.000Z"),
|
|
});
|
|
});
|
|
|
|
describe("fromJSON", () => {
|
|
jest.mock("@bitwarden/common/models/domain/encString");
|
|
const mockFromJson = (stub: any) => (stub + "_fromJSON") as any;
|
|
jest.spyOn(EncString, "fromJSON").mockImplementation(mockFromJson);
|
|
|
|
it("initializes nested objects", () => {
|
|
const revisionDate = new Date("2022-08-04T01:06:40.441Z");
|
|
const actual = Folder.fromJSON({
|
|
revisionDate: revisionDate.toISOString(),
|
|
name: "name",
|
|
id: "id",
|
|
});
|
|
|
|
const expected = {
|
|
revisionDate: revisionDate,
|
|
name: "name_fromJSON",
|
|
id: "id",
|
|
};
|
|
|
|
expect(actual).toMatchObject(expected);
|
|
});
|
|
});
|
|
});
|