mirror of
https://github.com/Unleash/unleash.git
synced 2024-11-01 19:07:38 +01:00
65 lines
1.6 KiB
TypeScript
65 lines
1.6 KiB
TypeScript
|
import { validateSchema } from '../validate';
|
||
|
import { FeatureSchema } from './feature-schema';
|
||
|
|
||
|
test('featureSchema', () => {
|
||
|
const data: FeatureSchema = {
|
||
|
name: 'a',
|
||
|
strategies: [
|
||
|
{
|
||
|
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' },
|
||
|
},
|
||
|
],
|
||
|
};
|
||
|
|
||
|
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();
|
||
|
});
|