Skip to content

Commit f1edb29

Browse files
authored
fix: update the client to conform to the provider interface (#187)
The resolve argument in the evaluation method was still using evaluation options. Signed-off-by: Michael Beemer <[email protected]>
1 parent b66171f commit f1edb29

File tree

3 files changed

+20
-31
lines changed

3 files changed

+20
-31
lines changed

src/client.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -145,12 +145,7 @@ export class OpenFeatureClient implements Client {
145145

146146
private async evaluate<T extends FlagValue>(
147147
flagKey: string,
148-
resolver: (
149-
flagKey: string,
150-
defaultValue: T,
151-
context: EvaluationContext,
152-
options: FlagEvaluationOptions | undefined
153-
) => Promise<ResolutionDetails<T>>,
148+
resolver: (flagKey: string, defaultValue: T, context: EvaluationContext) => Promise<ResolutionDetails<T>>,
154149
defaultValue: T,
155150
flagType: FlagValueType,
156151
invocationContext: EvaluationContext = {},
@@ -183,7 +178,7 @@ export class OpenFeatureClient implements Client {
183178
const frozenContext = await this.beforeHooks(allHooks, hookContext, options);
184179

185180
// run the referenced resolver, binding the provider.
186-
const resolution = await resolver.call(this.provider, flagKey, defaultValue, frozenContext, options);
181+
const resolution = await resolver.call(this.provider, flagKey, defaultValue, frozenContext);
187182

188183
const evaluationDetails = {
189184
...resolution,

test/client.spec.ts

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ describe(OpenFeatureClient.name, () => {
9191
const value = await client.getBooleanValue(booleanFlag, defaultBooleanValue);
9292

9393
expect(value).toEqual(BOOLEAN_VALUE);
94-
expect(MOCK_PROVIDER.resolveBooleanEvaluation).toHaveBeenCalledWith(booleanFlag, defaultBooleanValue, {}, {});
94+
expect(MOCK_PROVIDER.resolveBooleanEvaluation).toHaveBeenCalledWith(booleanFlag, defaultBooleanValue, {});
9595
});
9696
});
9797

@@ -102,7 +102,7 @@ describe(OpenFeatureClient.name, () => {
102102
const value = await client.getStringValue(stringFlag, defaultStringValue);
103103

104104
expect(value).toEqual(STRING_VALUE);
105-
expect(MOCK_PROVIDER.resolveStringEvaluation).toHaveBeenCalledWith(stringFlag, defaultStringValue, {}, {});
105+
expect(MOCK_PROVIDER.resolveStringEvaluation).toHaveBeenCalledWith(stringFlag, defaultStringValue, {});
106106
});
107107
});
108108

@@ -113,7 +113,7 @@ describe(OpenFeatureClient.name, () => {
113113
const value = await client.getNumberValue(numberFlag, defaultNumberValue);
114114

115115
expect(value).toEqual(NUMBER_VALUE);
116-
expect(MOCK_PROVIDER.resolveNumberEvaluation).toHaveBeenCalledWith(numberFlag, defaultNumberValue, {}, {});
116+
expect(MOCK_PROVIDER.resolveNumberEvaluation).toHaveBeenCalledWith(numberFlag, defaultNumberValue, {});
117117
});
118118
});
119119

@@ -124,7 +124,7 @@ describe(OpenFeatureClient.name, () => {
124124
const value = await client.getObjectValue(objectFlag, {});
125125

126126
expect(value).toEqual(OBJECT_VALUE);
127-
expect(MOCK_PROVIDER.resolveObjectEvaluation).toHaveBeenCalledWith(objectFlag, defaultObjectFlag, {}, {});
127+
expect(MOCK_PROVIDER.resolveObjectEvaluation).toHaveBeenCalledWith(objectFlag, defaultObjectFlag, {});
128128
});
129129
});
130130
});
@@ -146,7 +146,7 @@ describe(OpenFeatureClient.name, () => {
146146

147147
expect(booleanDetails.value).toEqual(BOOLEAN_VALUE);
148148
expect(booleanDetails.variant).toEqual(BOOLEAN_VARIANT);
149-
expect(MOCK_PROVIDER.resolveBooleanEvaluation).toHaveBeenCalledWith(booleanFlag, defaultBooleanValue, {}, {});
149+
expect(MOCK_PROVIDER.resolveBooleanEvaluation).toHaveBeenCalledWith(booleanFlag, defaultBooleanValue, {});
150150
});
151151
});
152152

@@ -158,7 +158,7 @@ describe(OpenFeatureClient.name, () => {
158158

159159
expect(stringDetails.value).toEqual(STRING_VALUE);
160160
expect(stringDetails.variant).toEqual(STRING_VARIANT);
161-
expect(MOCK_PROVIDER.resolveStringEvaluation).toHaveBeenCalledWith(stringFlag, defaultStringValue, {}, {});
161+
expect(MOCK_PROVIDER.resolveStringEvaluation).toHaveBeenCalledWith(stringFlag, defaultStringValue, {});
162162
});
163163
});
164164

@@ -170,7 +170,7 @@ describe(OpenFeatureClient.name, () => {
170170

171171
expect(numberDetails.value).toEqual(NUMBER_VALUE);
172172
expect(numberDetails.variant).toEqual(NUMBER_VARIANT);
173-
expect(MOCK_PROVIDER.resolveNumberEvaluation).toHaveBeenCalledWith(numberFlag, defaultNumberValue, {}, {});
173+
expect(MOCK_PROVIDER.resolveNumberEvaluation).toHaveBeenCalledWith(numberFlag, defaultNumberValue, {});
174174
});
175175
});
176176

@@ -182,7 +182,7 @@ describe(OpenFeatureClient.name, () => {
182182

183183
expect(objectDetails.value).toEqual(OBJECT_VALUE);
184184
expect(objectDetails.variant).toEqual(OBJECT_VARIANT);
185-
expect(MOCK_PROVIDER.resolveObjectEvaluation).toHaveBeenCalledWith(objectFlag, defaultObjectFlag, {}, {});
185+
expect(MOCK_PROVIDER.resolveObjectEvaluation).toHaveBeenCalledWith(objectFlag, defaultObjectFlag, {});
186186
});
187187
});
188188
});
@@ -303,8 +303,7 @@ describe(OpenFeatureClient.name, () => {
303303
expect(nonTransformingProvider.resolveBooleanEvaluation).toHaveBeenCalledWith(
304304
flagKey,
305305
defaultValue,
306-
expect.objectContaining({ transformed: false }),
307-
expect.anything()
306+
expect.objectContaining({ transformed: false })
308307
);
309308
});
310309
});
@@ -337,8 +336,7 @@ describe(OpenFeatureClient.name, () => {
337336
expect.anything(),
338337
expect.objectContaining({
339338
targetingKey: TARGETING_KEY,
340-
}),
341-
expect.anything()
339+
})
342340
);
343341
});
344342
});
@@ -363,8 +361,7 @@ describe(OpenFeatureClient.name, () => {
363361
expect.anything(),
364362
expect.objectContaining({
365363
...context,
366-
}),
367-
expect.anything()
364+
})
368365
);
369366
});
370367
});
@@ -406,8 +403,7 @@ describe(OpenFeatureClient.name, () => {
406403
...clientContext,
407404
...invocationContext,
408405
...beforeHookContext,
409-
}),
410-
expect.anything()
406+
})
411407
);
412408
});
413409
});

test/hooks.spec.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,7 @@ describe('Hooks', () => {
169169
// ensure property was added by the time the flag resolution occurred.
170170
expect.objectContaining({
171171
beforeRan: true,
172-
}),
173-
expect.anything()
172+
})
174173
);
175174
});
176175
});
@@ -254,8 +253,7 @@ describe('Hooks', () => {
254253
[invocationProp434]: true,
255254
[invocationPropToOverwrite434]: true,
256255
[hookProp434]: true,
257-
}),
258-
expect.anything()
256+
})
259257
);
260258
});
261259
});
@@ -939,7 +937,7 @@ describe('Hooks', () => {
939937
it('should be awaited, run in order', (done) => {
940938
OpenFeature.setProvider(MOCK_PROVIDER);
941939

942-
const asyncBeforeErroFinally = {
940+
const asyncBeforeErrorFinally = {
943941
before: jest.fn(() => {
944942
return new Promise<EvaluationContext>((resolve, reject) =>
945943
setTimeout(() => {
@@ -949,15 +947,15 @@ describe('Hooks', () => {
949947
}),
950948
error: jest.fn(() => {
951949
try {
952-
expect(asyncBeforeErroFinally.before).toHaveBeenCalled();
950+
expect(asyncBeforeErrorFinally.before).toHaveBeenCalled();
953951
} catch (err) {
954952
done(err);
955953
}
956954
return Promise.resolve();
957955
}),
958956
finally: () => {
959957
try {
960-
expect(asyncBeforeErroFinally.error).toHaveBeenCalled();
958+
expect(asyncBeforeErrorFinally.error).toHaveBeenCalled();
961959
done();
962960
} catch (err) {
963961
done(err);
@@ -966,7 +964,7 @@ describe('Hooks', () => {
966964
};
967965

968966
client.getBooleanValue(FLAG_KEY, false, undefined, {
969-
hooks: [asyncBeforeErroFinally],
967+
hooks: [asyncBeforeErrorFinally],
970968
});
971969
});
972970
});

0 commit comments

Comments
 (0)