js-sdk/packages/react/test/test.utils.ts

21 lines
737 B
TypeScript

import { EvaluationContext, InMemoryProvider } from '@openfeature/web-sdk';
export class TestingProvider extends InMemoryProvider {
constructor(
flagConfiguration: ConstructorParameters<typeof InMemoryProvider>[0],
private delay: number,
) {
super(flagConfiguration);
}
// artificially delay our init (delaying PROVIDER_READY event)
async initialize(context?: EvaluationContext | undefined): Promise<void> {
await new Promise((resolve) => setTimeout(resolve, this.delay));
return super.initialize(context);
}
// artificially delay context changes
async onContextChange(): Promise<void> {
await new Promise((resolve) => setTimeout(resolve, this.delay));
}
}