1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-08-23 13:46:45 +02:00

fix: playground variants

This commit is contained in:
kwasniew 2023-07-26 12:50:43 +02:00
parent 4fcd14e947
commit 4f4a208f8c
No known key found for this signature in database
GPG Key ID: 43A7CBC24C119560
3 changed files with 36 additions and 15 deletions

View File

@ -199,7 +199,7 @@ export default class UnleashClient {
context: Context,
fallbackVariant?: Variant,
): Variant {
return this.resolveVariant(name, context, true, fallbackVariant);
return this.resolveVariant(name, context, fallbackVariant);
}
// This function is intended to close an issue in the proxy where feature enabled
@ -208,16 +208,28 @@ export default class UnleashClient {
forceGetVariant(
name: string,
context: Context,
forcedResult: Pick<
FeatureStrategiesEvaluationResult,
'result' | 'variant'
>,
fallbackVariant?: Variant,
): Variant {
return this.resolveVariant(name, context, false, fallbackVariant);
return this.resolveVariant(
name,
context,
fallbackVariant,
forcedResult,
);
}
private resolveVariant(
name: string,
context: Context,
checkToggle: boolean,
fallbackVariant?: Variant,
forcedResult?: Pick<
FeatureStrategiesEvaluationResult,
'result' | 'variant'
>,
): Variant {
const fallback = fallbackVariant || getDefaultVariant();
const feature = this.repository.getToggle(name);
@ -227,18 +239,18 @@ export default class UnleashClient {
}
let enabled = true;
if (checkToggle) {
const result = this.isFeatureEnabled(feature, context, () =>
const result =
forcedResult ??
this.isFeatureEnabled(feature, context, () =>
fallbackVariant ? fallbackVariant.enabled : false,
);
enabled = result.result === true;
const strategyVariant = result.variant;
if (enabled && strategyVariant) {
return strategyVariant;
}
if (!enabled) {
return fallback;
}
enabled = result.result === true;
const strategyVariant = result.variant;
if (enabled && strategyVariant) {
return strategyVariant;
}
if (!enabled) {
return fallback;
}
if (
@ -261,7 +273,7 @@ export default class UnleashClient {
return {
name: variant.name,
payload: variant.payload,
enabled: !checkToggle || enabled,
enabled,
};
}
}

View File

@ -104,6 +104,10 @@ export class FeatureEvaluator {
forceGetVariant(
name: string,
forcedResults: Pick<
FeatureStrategiesEvaluationResult,
'result' | 'variant'
>,
context: Context = {},
fallbackVariant?: Variant,
): Variant {
@ -111,6 +115,7 @@ export class FeatureEvaluator {
return this.client.forceGetVariant(
name,
enhancedContext,
forcedResults,
fallbackVariant,
);
}

View File

@ -176,7 +176,11 @@ export class PlaygroundService {
data: strategyEvaluationResult.strategies,
},
projectId: featureProject[feature.name],
variant: client.getVariant(feature.name, clientContext),
variant: client.forceGetVariant(
feature.name,
strategyEvaluationResult,
clientContext,
),
name: feature.name,
environment,
context,