From b714441632625ed5e5f32becad7de7877c826032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garci=CC=81a?= Date: Wed, 26 Mar 2025 20:15:58 +0100 Subject: [PATCH] Fix tests --- .../src/vault/services/totp.service.spec.ts | 17 ++++++++--------- libs/common/src/vault/services/totp.service.ts | 4 ++-- ...-asymmetric-key-regeneration.service.spec.ts | 4 ++-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/libs/common/src/vault/services/totp.service.spec.ts b/libs/common/src/vault/services/totp.service.spec.ts index c653b4ce1db..cbfa982410f 100644 --- a/libs/common/src/vault/services/totp.service.spec.ts +++ b/libs/common/src/vault/services/totp.service.spec.ts @@ -16,12 +16,12 @@ describe("TotpService", () => { beforeEach(() => { generateTotpMock = jest .fn() - .mockReturnValueOnce({ + .mockResolvedValueOnce({ code: "123456", period: 30, }) - .mockReturnValueOnce({ code: "654321", period: 30 }) - .mockReturnValueOnce({ code: "567892", period: 30 }); + .mockResolvedValueOnce({ code: "654321", period: 30 }) + .mockResolvedValueOnce({ code: "567892", period: 30 }); const mockBitwardenClient = { vault: () => ({ @@ -59,7 +59,7 @@ describe("TotpService", () => { jest.advanceTimersByTime(1000); }); - it("should emit TOTP response every second", () => { + it("should emit TOTP response every second", async () => { const responses: TotpResponse[] = []; totpService @@ -69,8 +69,7 @@ describe("TotpService", () => { responses.push(result); }); - jest.advanceTimersByTime(2000); - + await jest.advanceTimersByTimeAsync(2000); expect(responses).toEqual([ { code: "123456", period: 30 }, { code: "654321", period: 30 }, @@ -78,16 +77,16 @@ describe("TotpService", () => { ]); }); - it("should stop emitting TOTP response after unsubscribing", () => { + it("should stop emitting TOTP response after unsubscribing", async () => { const responses: TotpResponse[] = []; const subscription = totpService.getCode$("WQIQ25BRKZYCJVYP").subscribe((result) => { responses.push(result); }); - jest.advanceTimersByTime(1000); + await jest.advanceTimersByTimeAsync(1900); subscription.unsubscribe(); - jest.advanceTimersByTime(1000); + await jest.advanceTimersByTimeAsync(2000); expect(responses).toHaveLength(2); }); diff --git a/libs/common/src/vault/services/totp.service.ts b/libs/common/src/vault/services/totp.service.ts index 9ec0afda089..3394e3224c9 100644 --- a/libs/common/src/vault/services/totp.service.ts +++ b/libs/common/src/vault/services/totp.service.ts @@ -1,4 +1,4 @@ -import { Observable, from, shareReplay, switchMap, timer } from "rxjs"; +import { Observable, concatMap, from, shareReplay, switchMap, timer } from "rxjs"; import { TotpResponse } from "@bitwarden/sdk-internal"; @@ -30,7 +30,7 @@ export class TotpService implements TotpServiceAbstraction { getCode$(key: string): Observable { return timer(0, 1000).pipe( - switchMap(() => + concatMap(() => this.sdkService.client$.pipe( switchMap((sdk) => { return from(sdk.vault().totp().generate_totp(key)); diff --git a/libs/key-management/src/user-asymmetric-key-regeneration/services/default-user-asymmetric-key-regeneration.service.spec.ts b/libs/key-management/src/user-asymmetric-key-regeneration/services/default-user-asymmetric-key-regeneration.service.spec.ts index af5828c5aed..fb11a0fce9e 100644 --- a/libs/key-management/src/user-asymmetric-key-regeneration/services/default-user-asymmetric-key-regeneration.service.spec.ts +++ b/libs/key-management/src/user-asymmetric-key-regeneration/services/default-user-asymmetric-key-regeneration.service.spec.ts @@ -33,8 +33,8 @@ function setupVerificationResponse( sdkService.client$ = of({ crypto: () => ({ - verify_asymmetric_keys: jest.fn().mockReturnValue(mockVerificationResponse), - make_key_pair: jest.fn().mockReturnValue(mockKeyPairResponse), + verify_asymmetric_keys: jest.fn().mockResolvedValue(mockVerificationResponse), + make_key_pair: jest.fn().mockResolvedValue(mockKeyPairResponse), }), free: jest.fn(), echo: jest.fn(),