mirror of
https://github.com/bitwarden/browser
synced 2026-01-06 02:23:44 +00:00
* 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
64 lines
2.0 KiB
TypeScript
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();
|
|
});
|
|
});
|
|
});
|