Skip to content

Commit 7ffe8e5

Browse files
committed
Remove prerequisites from evaluation detail.
1 parent 7a6cc71 commit 7ffe8e5

File tree

8 files changed

+9
-97
lines changed

8 files changed

+9
-97
lines changed

packages/shared/common/src/api/data/LDEvaluationDetail.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,6 @@ export interface LDEvaluationDetail {
2828
* An object describing the main factor that influenced the flag evaluation value.
2929
*/
3030
reason: LDEvaluationReason;
31-
32-
/**
33-
* An optional ordered list of prerequisite flag keys evaluated while determining the flags value.
34-
* This will only include the direct prerequisites of the flag.
35-
*/
36-
prerequisites?: string[];
3731
}
3832

3933
export interface LDEvaluationDetailTyped<TFlag> {
@@ -53,9 +47,4 @@ export interface LDEvaluationDetailTyped<TFlag> {
5347
* An object describing the main factor that influenced the flag evaluation value.
5448
*/
5549
reason: LDEvaluationReason;
56-
57-
/**
58-
* An ordered list of prerequisite flag keys evaluated while determining the flags value.
59-
*/
60-
prerequisites?: string[];
6150
}

packages/shared/sdk-client/src/LDClientImpl.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -350,13 +350,13 @@ export default class LDClientImpl implements LDClient {
350350
}
351351
}
352352

353-
const successDetail = createSuccessEvaluationDetail(value, variation, reason, prerequisites);
353+
const successDetail = createSuccessEvaluationDetail(value, variation, reason);
354354
if (value === undefined || value === null) {
355355
this.logger.debug('Result value is null. Providing default value.');
356356
successDetail.value = defaultValue;
357357
}
358358

359-
successDetail.prerequisites?.forEach((prereqKey) => {
359+
prerequisites?.forEach((prereqKey) => {
360360
this.variation(prereqKey, undefined);
361361
});
362362
this._eventProcessor?.sendEvent(

packages/shared/sdk-client/src/evaluation/evaluationDetail.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,11 @@ export function createSuccessEvaluationDetail(
1717
value: LDFlagValue,
1818
variationIndex?: number,
1919
reason?: LDEvaluationReason,
20-
prerequisites?: string[],
2120
): LDEvaluationDetail {
2221
const res: LDEvaluationDetail = {
2322
value,
2423
variationIndex: variationIndex ?? null,
2524
reason: reason ?? null,
2625
};
27-
if (prerequisites) {
28-
res.prerequisites = prerequisites;
29-
}
3026
return res;
3127
}

packages/shared/sdk-server/__tests__/LDClient.evaluation.test.ts

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -253,75 +253,6 @@ describe('given an LDClient with test data', () => {
253253
expect(res.reason.kind).toEqual('ERROR');
254254
expect(res.reason.errorKind).toEqual('WRONG_TYPE');
255255
});
256-
257-
it('includes prerequisite information for flags with prerequisites', async () => {
258-
await td.update(td.flag('is-prereq').valueForAll(true));
259-
await td.usePreconfiguredFlag({
260-
key: 'has-prereq-depth-1',
261-
on: true,
262-
prerequisites: [
263-
{
264-
key: 'is-prereq',
265-
variation: 0,
266-
},
267-
],
268-
fallthrough: {
269-
variation: 0,
270-
},
271-
offVariation: 1,
272-
variations: [true, false],
273-
clientSideAvailability: {
274-
usingMobileKey: true,
275-
usingEnvironmentId: true,
276-
},
277-
clientSide: true,
278-
version: 4,
279-
});
280-
281-
const res = await client.variationDetail('has-prereq-depth-1', defaultUser, false);
282-
expect(res.value).toEqual(true);
283-
expect(res.reason.kind).toEqual('FALLTHROUGH');
284-
expect(res.prerequisites).toEqual(['is-prereq']);
285-
});
286-
287-
it.each([
288-
['boolVariationDetail', true, false],
289-
['numberVariationDetail', 42, 3.14],
290-
['stringVariationDetail', 'value', 'default'],
291-
['jsonVariationDetail', { value: 'value' }, { value: 'default' }],
292-
])(
293-
'includes prerequisite information for typed evals',
294-
async (method: string, value: any, def: any) => {
295-
await td.update(td.flag('is-prereq').valueForAll(true));
296-
await td.usePreconfiguredFlag({
297-
key: 'has-prereq-depth-1',
298-
on: true,
299-
prerequisites: [
300-
{
301-
key: 'is-prereq',
302-
variation: 0,
303-
},
304-
],
305-
fallthrough: {
306-
variation: 0,
307-
},
308-
offVariation: 1,
309-
variations: [value, def],
310-
clientSideAvailability: {
311-
usingMobileKey: true,
312-
usingEnvironmentId: true,
313-
},
314-
clientSide: true,
315-
version: 4,
316-
});
317-
318-
// @ts-ignore Typescript cannot infer the matching method types.
319-
const res = await client[method]('has-prereq-depth-1', defaultUser, def);
320-
expect(res.value).toEqual(value);
321-
expect(res.reason.kind).toEqual('FALLTHROUGH');
322-
expect(res.prerequisites).toEqual(['is-prereq']);
323-
},
324-
);
325256
});
326257

327258
describe('given an offline client', () => {

packages/shared/sdk-server/__tests__/evaluation/Evaluator.prerequisite.test.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ describe('given a flag payload with prerequisites', () => {
138138

139139
expect(res.detail.reason.kind).toEqual('FALLTHROUGH');
140140

141-
expect(res.detail.prerequisites).toEqual(['is-prereq']);
141+
expect(res.prerequisites).toEqual(['is-prereq']);
142142
});
143143

144144
it('can track prerequisites for a prereq of a prereq', async () => {
@@ -150,7 +150,7 @@ describe('given a flag payload with prerequisites', () => {
150150

151151
expect(res.detail.reason.kind).toEqual('FALLTHROUGH');
152152

153-
expect(res.detail.prerequisites).toEqual(['has-prereq-depth-1']);
153+
expect(res.prerequisites).toEqual(['has-prereq-depth-1']);
154154
});
155155

156156
it('can track prerequisites for a flag with multiple prereqs with and without additional prereqs', async () => {
@@ -162,11 +162,7 @@ describe('given a flag payload with prerequisites', () => {
162162

163163
expect(res.detail.reason.kind).toEqual('FALLTHROUGH');
164164

165-
expect(res.detail.prerequisites).toEqual([
166-
'has-prereq-depth-1',
167-
'has-prereq-depth-2',
168-
'is-prereq',
169-
]);
165+
expect(res.prerequisites).toEqual(['has-prereq-depth-1', 'has-prereq-depth-2', 'is-prereq']);
170166
});
171167

172168
it('has can handle a prerequisite failure', async () => {
@@ -180,6 +176,6 @@ describe('given a flag payload with prerequisites', () => {
180176
expect(res.detail.reason.kind).toEqual('PREREQUISITE_FAILED');
181177
expect(res.detail.reason.prerequisiteKey).toEqual('has-prereq-depth-1');
182178

183-
expect(res.detail.prerequisites).toEqual(['has-prereq-depth-1']);
179+
expect(res.prerequisites).toEqual(['has-prereq-depth-1']);
184180
});
185181
});

packages/shared/sdk-server/src/LDClientImpl.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,6 @@ export default class LDClientImpl implements LDClient {
398398
value: res.detail.value as TResult,
399399
reason: res.detail.reason,
400400
variationIndex: res.detail.variationIndex,
401-
prerequisites: res.detail.prerequisites,
402401
};
403402
resolve(typedRes);
404403
},
@@ -668,7 +667,7 @@ export default class LDClientImpl implements LDClient {
668667
flag.trackEvents || requireExperimentData,
669668
requireExperimentData,
670669
detailsOnlyIfTracked,
671-
res.detail.prerequisites,
670+
res.prerequisites,
672671
);
673672
iterCb(true);
674673
});

packages/shared/sdk-server/src/evaluation/EvalResult.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import Reasons from './Reasons';
1010
*/
1111
export default class EvalResult {
1212
public events?: internal.InputEvalEvent[];
13+
public prerequisites?: string[];
1314

1415
protected constructor(
1516
public readonly isError: boolean,

packages/shared/sdk-server/src/evaluation/Evaluator.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ export default class Evaluator {
141141
};
142142
}
143143
if (state.prerequisites) {
144-
res.detail.prerequisites = state.prerequisites;
144+
res.prerequisites = state.prerequisites;
145145
}
146146
res.events = state.events;
147147
cb(res);

0 commit comments

Comments
 (0)