1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-11-01 19:07:38 +01:00
unleash.unleash/src/lib/openapi/spec/feature-schema.test.ts
olav ac3f076a31
refactor: add schemas to strategy controller (#1744)
* refactor: avoid duplicate feature strategy operationIds

* refactor: fix flaky feature tests

* refactor: remove duplicate controller error handling

* refactor: unify feature strategy schemas

* refactor: add schemas to strategy controller
2022-06-23 08:10:20 +02:00

73 lines
1.8 KiB
TypeScript

import { validateSchema } from '../validate';
import { FeatureSchema } from './feature-schema';
test('featureSchema', () => {
const data: FeatureSchema = {
name: 'a',
strategies: [
{
id: 'a',
name: 'a',
constraints: [
{
contextName: 'a',
operator: 'IN',
},
],
},
],
variants: [
{
name: 'a',
weight: 1,
weightType: 'a',
stickiness: 'a',
overrides: [{ contextName: 'a', values: ['a'] }],
payload: { type: 'a', value: 'b' },
},
],
environments: [
{
name: 'a',
type: 'b',
enabled: true,
},
],
};
expect(
validateSchema('#/components/schemas/featureSchema', data),
).toBeUndefined();
});
test('featureSchema constraints', () => {
const data = {
name: 'a',
strategies: [{ name: 'a', constraints: [{ contextName: 'a' }] }],
};
expect(
validateSchema('#/components/schemas/featureSchema', data),
).toMatchSnapshot();
});
test('featureSchema overrides', () => {
const data = {
name: 'a',
variants: [
{
name: 'a',
weight: 1,
weightType: 'a',
stickiness: 'a',
overrides: [{ contextName: 'a', values: 'b' }],
payload: { type: 'a', value: 'b' },
},
],
};
expect(
validateSchema('#/components/schemas/featureSchema', data),
).toMatchSnapshot();
});