Skip to content

Commit c967727

Browse files
[FSSDK-12296] decideAsync impl.
1 parent 899e2d8 commit c967727

5 files changed

Lines changed: 571 additions & 3 deletions

File tree

src/hooks/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,5 @@ export type { UseDecideConfig, UseDecideResult } from './useDecide';
2222
export { useDecideForKeys } from './useDecideForKeys';
2323
export type { UseDecideMultiResult } from './useDecideForKeys';
2424
export { useDecideAll } from './useDecideAll';
25+
export { useDecideAsync } from './useDecideAsync';
26+
export type { UseDecideAsyncResult } from './useDecideAsync';

src/hooks/testUtils.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,7 @@ export const MOCK_DECISIONS: Record<string, OptimizelyDecision> = {
4848
* Creates a mock OptimizelyUserContext with all methods stubbed.
4949
* Override specific methods via the overrides parameter.
5050
*/
51-
export function createMockUserContext(
52-
overrides?: Partial<Record<string, unknown>>,
53-
): OptimizelyUserContext {
51+
export function createMockUserContext(overrides?: Partial<Record<string, unknown>>): OptimizelyUserContext {
5452
return {
5553
getUserId: vi.fn().mockReturnValue('test-user'),
5654
getAttributes: vi.fn().mockReturnValue({}),
@@ -66,6 +64,17 @@ export function createMockUserContext(
6664
}
6765
return result;
6866
}),
67+
decideAsync: vi.fn().mockResolvedValue(MOCK_DECISION),
68+
decideAllAsync: vi.fn().mockResolvedValue(MOCK_DECISIONS),
69+
decideForKeysAsync: vi.fn().mockImplementation((keys: string[]) => {
70+
const result: Record<string, OptimizelyDecision> = {};
71+
for (const key of keys) {
72+
if (MOCK_DECISIONS[key]) {
73+
result[key] = MOCK_DECISIONS[key];
74+
}
75+
}
76+
return Promise.resolve(result);
77+
}),
6978
setForcedDecision: vi.fn().mockReturnValue(true),
7079
getForcedDecision: vi.fn(),
7180
removeForcedDecision: vi.fn().mockReturnValue(true),

0 commit comments

Comments
 (0)