1
0
mirror of https://github.com/bitwarden/browser synced 2026-01-06 02:23:44 +00:00
Files
browser/apps/web/src/app/platform/web-storage-service.provider.spec.ts
Justin Baur 87c75e5ac8 [PM-6404] Initial Clear Events Code (#8029)
* Add New KeyDefinitionOption

* Add New Services

* Add WebStorageServiceProvider Tests

* Update Error Message

* Add `UserKeyDefinition`

* Fix Deserialization Helpers

* Fix KeyDefinition

* Add `UserKeyDefinition`

* Fix Deserialization Helpers

* Fix KeyDefinition

* Move `ClearEvent`

* Cleanup

* Fix Imports

* Remove `updateMock`

* Call Super in Web Implementation

* Use Better Type to Avoid Casting

* Better Error Docs

* Move StorageKey Creation to Function

* Throw Aggregated Error for Failures
2024-02-27 21:58:31 +00:00

64 lines
2.0 KiB
TypeScript

import { mock } from "jest-mock-extended";
import {
AbstractStorageService,
ObservableStorageService,
} from "@bitwarden/common/platform/abstractions/storage.service";
import { PossibleLocation } from "@bitwarden/common/platform/services/storage-service.provider";
import {
ClientLocations,
StorageLocation,
// eslint-disable-next-line import/no-restricted-paths
} from "@bitwarden/common/platform/state/state-definition";
import { WebStorageServiceProvider } from "./web-storage-service.provider";
describe("WebStorageServiceProvider", () => {
const mockDiskStorage = mock<AbstractStorageService & ObservableStorageService>();
const mockMemoryStorage = mock<AbstractStorageService & ObservableStorageService>();
const mockDiskLocalStorage = mock<AbstractStorageService & ObservableStorageService>();
const sut = new WebStorageServiceProvider(
mockDiskStorage,
mockMemoryStorage,
mockDiskLocalStorage,
);
describe("get", () => {
const getTests = [
{
input: { default: "disk", overrides: {} },
expected: "disk",
},
{
input: { default: "memory", overrides: {} },
expected: "memory",
},
{
input: { default: "disk", overrides: { web: "disk-local" } },
expected: "disk-local",
},
{
input: { default: "disk", overrides: { web: "memory" } },
expected: "memory",
},
{
input: { default: "memory", overrides: { web: "disk" } },
expected: "disk",
},
] satisfies {
input: { default: StorageLocation; overrides: Partial<ClientLocations> };
expected: PossibleLocation;
}[];
it.each(getTests)("computes properly based on %s", ({ input, expected: expectedLocation }) => {
const [actualLocation] = sut.get(input.default, input.overrides);
expect(actualLocation).toStrictEqual(expectedLocation);
});
it("throws on unsupported option", () => {
expect(() => sut.get("blah" as any, {})).toThrow();
});
});
});