From e69a79304307fd650dfba1f28bdd5788fb79a40e Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 25 Apr 2025 20:54:39 +0200 Subject: [PATCH] core-app-api: use PublishSubject in OAuthRequestManager Signed-off-by: Vincenzo Scamporlino --- .../OAuthRequestApi/OAuthRequestManager.test.ts | 6 +++--- .../implementations/OAuthRequestApi/OAuthRequestManager.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthRequestManager.test.ts b/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthRequestManager.test.ts index 4dd6af715e..226ca5eb28 100644 --- a/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthRequestManager.test.ts +++ b/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthRequestManager.test.ts @@ -34,12 +34,12 @@ describe('OAuthRequestManager', () => { expect(reqSpy).toHaveBeenCalledTimes(0); await 'a tick'; - expect(reqSpy).toHaveBeenCalledTimes(2); + expect(reqSpy).toHaveBeenCalledTimes(1); expect(reqSpy).toHaveBeenLastCalledWith([]); const req = requester(new Set(['my-scope'])); - expect(reqSpy).toHaveBeenCalledTimes(3); + expect(reqSpy).toHaveBeenCalledTimes(2); expect(reqSpy).toHaveBeenLastCalledWith([ expect.objectContaining({ reject: expect.any(Function), @@ -51,7 +51,7 @@ describe('OAuthRequestManager', () => { 'not yet', ); - const [request] = reqSpy.mock.calls[2][0]; + const [request] = reqSpy.mock.calls[1][0]; request.trigger(); await expect(req).resolves.toBe('hello'); diff --git a/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthRequestManager.ts b/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthRequestManager.ts index 5d467be7b4..0f7ad0f2c7 100644 --- a/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthRequestManager.ts +++ b/packages/core-app-api/src/apis/implementations/OAuthRequestApi/OAuthRequestManager.ts @@ -22,7 +22,7 @@ import { } from '@backstage/core-plugin-api'; import { Observable } from '@backstage/types'; import { OAuthPendingRequests, PendingRequest } from './OAuthPendingRequests'; -import { BehaviorSubject } from '../../../lib/subjects'; +import { PublishSubject } from '../../../lib/subjects'; /** * The OAuthRequestManager is an implementation of the OAuthRequestApi. @@ -34,7 +34,7 @@ import { BehaviorSubject } from '../../../lib/subjects'; * @public */ export class OAuthRequestManager implements OAuthRequestApi { - private readonly subject = new BehaviorSubject([]); + private readonly subject = new PublishSubject(); private currentRequests: PendingOAuthRequest[] = []; private handlerCount = 0;