oidc-client-rx/src/config/loader/config-loader.spec.ts
2025-02-02 00:45:46 +08:00

81 lines
2.7 KiB
TypeScript

import { firstValueFrom, of } from 'rxjs';
import type { OpenIdConfiguration } from '../openid-configuration';
import { StsConfigHttpLoader, StsConfigStaticLoader } from './config-loader';
describe('ConfigLoader', () => {
describe('StsConfigStaticLoader', () => {
describe('loadConfigs', () => {
it('returns an array if an array is passed', async () => {
const toPass = [
{ configId: 'configId1' } as OpenIdConfiguration,
{ configId: 'configId2' } as OpenIdConfiguration,
];
const loader = new StsConfigStaticLoader(toPass);
const result$ = loader.loadConfigs();
const result = await firstValueFrom(result$);
expect(Array.isArray(result)).toBeTruthy();
});
it('returns an array if only one config is passed', async () => {
const loader = new StsConfigStaticLoader({
configId: 'configId1',
} as OpenIdConfiguration);
const result$ = loader.loadConfigs();
const result = await firstValueFrom(result$);
expect(Array.isArray(result)).toBeTruthy();
});
});
});
describe('StsConfigHttpLoader', () => {
describe('loadConfigs', () => {
it('returns an array if an array of observables is passed', async () => {
const toPass = [
of({ configId: 'configId1' } as OpenIdConfiguration),
of({ configId: 'configId2' } as OpenIdConfiguration),
];
const loader = new StsConfigHttpLoader(toPass);
const result$ = loader.loadConfigs();
const result = await firstValueFrom(result$);
expect(Array.isArray(result)).toBeTruthy();
expect(result[0]!.configId).toBe('configId1');
expect(result[1]!.configId).toBe('configId2');
});
it('returns an array if an observable with a config array is passed', async () => {
const toPass = of([
{ configId: 'configId1' } as OpenIdConfiguration,
{ configId: 'configId2' } as OpenIdConfiguration,
]);
const loader = new StsConfigHttpLoader(toPass);
const result$ = loader.loadConfigs();
const result = await firstValueFrom(result$);
expect(Array.isArray(result)).toBeTruthy();
expect(result[0]!.configId).toBe('configId1');
expect(result[1]!.configId).toBe('configId2');
});
it('returns an array if only one config is passed', async () => {
const loader = new StsConfigHttpLoader(
of({ configId: 'configId1' } as OpenIdConfiguration)
);
const result$ = loader.loadConfigs();
const result = await firstValueFrom(result$);
expect(Array.isArray(result)).toBeTruthy();
expect(result[0]!.configId).toBe('configId1');
});
});
});
});