From 5c57b5e66315165bd4768d0b44df518ea0119f3d Mon Sep 17 00:00:00 2001 From: Oscar Hinton <Hinton@users.noreply.github.com> Date: Mon, 25 Jul 2022 13:53:22 +0200 Subject: [PATCH] Fix folder tests (#3171) --- .../spec/services/folder.service.spec.ts | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/libs/common/spec/services/folder.service.spec.ts b/libs/common/spec/services/folder.service.spec.ts index e4f269b536..697ae491f5 100644 --- a/libs/common/spec/services/folder.service.spec.ts +++ b/libs/common/spec/services/folder.service.spec.ts @@ -1,7 +1,6 @@ import { Arg, Substitute, SubstituteOf } from "@fluffy-spoon/substitute"; import { BehaviorSubject, firstValueFrom } from "rxjs"; -import { BroadcasterService } from "@bitwarden/common/abstractions/broadcaster.service"; import { CipherService } from "@bitwarden/common/abstractions/cipher.service"; import { CryptoService } from "@bitwarden/common/abstractions/crypto.service"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; @@ -19,30 +18,25 @@ describe("Folder Service", () => { let i18nService: SubstituteOf<I18nService>; let cipherService: SubstituteOf<CipherService>; let stateService: SubstituteOf<StateService>; - let broadcasterService: SubstituteOf<BroadcasterService>; let activeAccount: BehaviorSubject<string>; + let activeAccountUnlocked: BehaviorSubject<boolean>; beforeEach(() => { cryptoService = Substitute.for(); i18nService = Substitute.for(); cipherService = Substitute.for(); stateService = Substitute.for(); - broadcasterService = Substitute.for(); activeAccount = new BehaviorSubject("123"); + activeAccountUnlocked = new BehaviorSubject(true); stateService.getEncryptedFolders().resolves({ "1": folderData("1", "test"), }); stateService.activeAccount.returns(activeAccount); + stateService.activeAccountUnlocked.returns(activeAccountUnlocked); (window as any).bitwardenContainerService = new ContainerService(cryptoService); - folderService = new FolderService( - cryptoService, - i18nService, - cipherService, - stateService, - broadcasterService - ); + folderService = new FolderService(cryptoService, i18nService, cipherService, stateService); }); it("encrypt", async () => { @@ -155,6 +149,15 @@ describe("Folder Service", () => { expect((await firstValueFrom(folderService.folderViews$)).length).toBe(0); }); + it("locking should clear", async () => { + activeAccountUnlocked.next(false); + // Sleep for 100ms to avoid timing issues + await new Promise((r) => setTimeout(r, 100)); + + expect((await firstValueFrom(folderService.folders$)).length).toBe(0); + expect((await firstValueFrom(folderService.folderViews$)).length).toBe(0); + }); + describe("clear", () => { it("null userId", async () => { await folderService.clear();