mirror of
https://github.com/bitwarden/browser
synced 2025-12-16 16:23:44 +00:00
* [EC-381] Deleted unused method clearCache from Settings Service
* [EC-381] Marked settings methods as obsolete on State service
* [EC-381] Using observables on settings service
* [EC-381] Added unit tests for Settings service
* [EC-381] Checking userId on clear
* [EC-381] Updated references to StateService activeAccountUnlocked$
* [EC-381] Updated getEquivalentDomains to return observable
* [EC-381] Updated settings service to user concatMap on activeAccountUnlocked$
* [EC-381] Renamed getEquivalentDomains to equivalentDomains
* [EC-381] Completing Behaviors on settings.service tests
* [EC-381] Removed unused settingsPrefix from settings service
* [EC-381] Removed equivalentDomains from settings service and added type AccountSettingsSettings
* [EC-381] Updated settings service settings$ to not be nullable
* [EC-381] Settings default to {}
65 lines
2.1 KiB
TypeScript
65 lines
2.1 KiB
TypeScript
import { Arg, Substitute, SubstituteOf } from "@fluffy-spoon/substitute";
|
|
import { BehaviorSubject, firstValueFrom } from "rxjs";
|
|
|
|
import { CryptoService } from "@bitwarden/common/abstractions/crypto.service";
|
|
import { ContainerService } from "@bitwarden/common/services/container.service";
|
|
import { SettingsService } from "@bitwarden/common/services/settings.service";
|
|
import { StateService } from "@bitwarden/common/services/state.service";
|
|
|
|
describe("SettingsService", () => {
|
|
let settingsService: SettingsService;
|
|
|
|
let cryptoService: SubstituteOf<CryptoService>;
|
|
let stateService: SubstituteOf<StateService>;
|
|
let activeAccount: BehaviorSubject<string>;
|
|
let activeAccountUnlocked: BehaviorSubject<boolean>;
|
|
|
|
beforeEach(() => {
|
|
cryptoService = Substitute.for();
|
|
stateService = Substitute.for();
|
|
activeAccount = new BehaviorSubject("123");
|
|
activeAccountUnlocked = new BehaviorSubject(true);
|
|
|
|
stateService.getSettings().resolves({ equivalentDomains: [["test"], ["domains"]] });
|
|
stateService.activeAccount$.returns(activeAccount);
|
|
stateService.activeAccountUnlocked$.returns(activeAccountUnlocked);
|
|
(window as any).bitwardenContainerService = new ContainerService(cryptoService);
|
|
|
|
settingsService = new SettingsService(stateService);
|
|
});
|
|
|
|
afterEach(() => {
|
|
activeAccount.complete();
|
|
activeAccountUnlocked.complete();
|
|
});
|
|
|
|
describe("getEquivalentDomains", () => {
|
|
it("returns value", async () => {
|
|
const result = await firstValueFrom(settingsService.settings$);
|
|
|
|
expect(result).toEqual({
|
|
equivalentDomains: [["test"], ["domains"]],
|
|
});
|
|
});
|
|
});
|
|
|
|
it("setEquivalentDomains", async () => {
|
|
await settingsService.setEquivalentDomains([["test2"], ["domains2"]]);
|
|
|
|
stateService.received(1).setSettings(Arg.any());
|
|
|
|
expect((await firstValueFrom(settingsService.settings$)).equivalentDomains).toEqual([
|
|
["test2"],
|
|
["domains2"],
|
|
]);
|
|
});
|
|
|
|
it("clear", async () => {
|
|
await settingsService.clear();
|
|
|
|
stateService.received(1).setSettings(Arg.any(), Arg.any());
|
|
|
|
expect(await firstValueFrom(settingsService.settings$)).toEqual({});
|
|
});
|
|
});
|