Jon Koops 5cbba8f984
Automatically dispose of realms created by createTestBed() (#43299)
Closes #43298

Signed-off-by: Jon Koops <jonkoops@gmail.com>
2025-10-10 10:22:21 -04:00

26 lines
664 B
TypeScript

import type RealmRepresentation from "@keycloak/keycloak-admin-client/lib/defs/realmRepresentation.js";
import { adminClient } from "./admin-client.ts";
import { DEFAULT_USER } from "./common.ts";
export interface TestBed extends AsyncDisposable {
realm: string;
}
export async function createTestBed(
overrides?: RealmRepresentation,
): Promise<TestBed> {
const { realmName: realm } = await adminClient.realms.create({
enabled: true,
users: [DEFAULT_USER],
...overrides,
realm: crypto.randomUUID(),
});
const deleteRealm = () => adminClient.realms.del({ realm });
return {
realm,
[Symbol.asyncDispose]: deleteRealm,
};
}