core-app-api: use PublishSubject in OAuthRequestManager

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>
This commit is contained in:
Vincenzo Scamporlino
2025-04-25 20:54:39 +02:00
parent dce2bfad8c
commit e69a793043
2 changed files with 5 additions and 5 deletions
@@ -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');
@@ -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<PendingOAuthRequest[]>([]);
private readonly subject = new PublishSubject<PendingOAuthRequest[]>();
private currentRequests: PendingOAuthRequest[] = [];
private handlerCount = 0;