Skip to content

Commit

Permalink
Export variants env (#3008)
Browse files Browse the repository at this point in the history
Export variants env
  • Loading branch information
sjaanus committed Jan 27, 2023
1 parent f8473a2 commit e226e31
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 3 deletions.
1 change: 1 addition & 0 deletions src/lib/db/feature-environment-store.ts
Expand Up @@ -120,6 +120,7 @@ export class FeatureEnvironmentStore implements IFeatureEnvironmentStore {
enabled: r.enabled,
featureName: r.feature_name,
environment: r.environment,
variants: r.variants,
}));
}

Expand Down
90 changes: 87 additions & 3 deletions src/lib/openapi/spec/export-result-schema.test.ts
Expand Up @@ -5,15 +5,99 @@ test('exportResultSchema', () => {
const data: ExportResultSchema = {
features: [
{
name: 'test',
name: 'some-toggle1',
description: '',
type: 'release',
project: 'myproject',
stale: false,
impressionData: false,
archived: false,
},
],
featureStrategies: [
{
name: 'test',
constraints: [],
name: 'default',
id: '784f2bc1-ba45-4a92-a6d6-a80e18a4e407',
featureName: 'some-toggle1',
parameters: {},
constraints: [
{
values: ['ew'],
inverted: false,
operator: 'IN',
contextName: 'appName',
caseInsensitive: false,
},
{
values: ['e'],
inverted: false,
operator: 'IN',
contextName: 'userId',
caseInsensitive: false,
},
],
segments: [],
},
],
featureEnvironments: [
{
enabled: true,
featureName: 'some-toggle1',
environment: 'development',
variants: [
{
name: 'blue',
weight: 500,
overrides: [
{ values: ['best'], contextName: 'appName' },
],
stickiness: 'default',
weightType: 'variable',
},
{
name: 'red',
weight: 500,
payload: { type: 'string', value: 'dsfsd' },
overrides: [
{ values: ['worst'], contextName: 'appName' },
],
stickiness: 'default',
weightType: 'variable',
},
],
name: 'some-toggle1',
},
],
contextFields: [
{
name: 'appName',
description: 'Allows you to constrain on application name',
stickiness: false,
sortOrder: 2,
legalValues: [],
},
{
name: 'userId',
description: 'Allows you to constrain on userId',
stickiness: false,
sortOrder: 1,
legalValues: [],
},
],
featureTags: [
{
featureName: 'some-toggle',
tagType: 'simple',
tagValue: 'best-tag',
},
{ featureName: 'wat', tagType: 'simple', tagValue: 'best-tag' },
{
featureName: 'some-toggle1',
tagType: 'simple',
tagValue: 'best-tag',
},
],
segments: [],
};

expect(
Expand Down
8 changes: 8 additions & 0 deletions src/lib/openapi/spec/feature-environment-schema.ts
Expand Up @@ -2,6 +2,7 @@ import { FromSchema } from 'json-schema-to-ts';
import { constraintSchema } from './constraint-schema';
import { parametersSchema } from './parameters-schema';
import { featureStrategySchema } from './feature-strategy-schema';
import { variantSchema } from './variant-schema';

export const featureEnvironmentSchema = {
$id: '#/components/schemas/featureEnvironmentSchema',
Expand Down Expand Up @@ -36,12 +37,19 @@ export const featureEnvironmentSchema = {
$ref: '#/components/schemas/featureStrategySchema',
},
},
variants: {
type: 'array',
items: {
$ref: '#/components/schemas/variantSchema',
},
},
},
components: {
schemas: {
constraintSchema,
parametersSchema,
featureStrategySchema,
variantSchema,
},
},
} as const;
Expand Down
Expand Up @@ -1164,6 +1164,12 @@ exports[`should serve the OpenAPI spec 1`] = `
"variantCount": {
"type": "number",
},
"variants": {
"items": {
"$ref": "#/components/schemas/variantSchema",
},
"type": "array",
},
},
"required": [
"name",
Expand Down

0 comments on commit e226e31

Please sign in to comment.