1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-09-05 17:53:12 +02:00

refactor: remove response data from schema validation logging (#1748)

* refactor: remove response data from schema validation logging

* refactor: update validation error snapshots

* refactor: add missing segments field to featureStrategySchema
This commit is contained in:
olav 2022-06-24 13:44:16 +02:00
parent fb3b3e2c9b
commit 80d18a263a
9 changed files with 35 additions and 54 deletions

View File

@ -2,11 +2,6 @@
exports[`constraintSchema invalid operator name 1`] = ` exports[`constraintSchema invalid operator name 1`] = `
Object { Object {
"data": Object {
"contextName": "a",
"operator": "b",
"value": "1",
},
"errors": Array [ "errors": Array [
Object { Object {
"instancePath": "/operator", "instancePath": "/operator",
@ -40,11 +35,6 @@ Object {
exports[`constraintSchema invalid value type 1`] = ` exports[`constraintSchema invalid value type 1`] = `
Object { Object {
"data": Object {
"contextName": "a",
"operator": "NUM_LTE",
"value": 1,
},
"errors": Array [ "errors": Array [
Object { Object {
"instancePath": "/value", "instancePath": "/value",

View File

@ -2,19 +2,6 @@
exports[`featureSchema constraints 1`] = ` exports[`featureSchema constraints 1`] = `
Object { Object {
"data": Object {
"name": "a",
"strategies": Array [
Object {
"constraints": Array [
Object {
"contextName": "a",
},
],
"name": "a",
},
],
},
"errors": Array [ "errors": Array [
Object { Object {
"instancePath": "/strategies/0/constraints/0", "instancePath": "/strategies/0/constraints/0",
@ -32,27 +19,6 @@ Object {
exports[`featureSchema overrides 1`] = ` exports[`featureSchema overrides 1`] = `
Object { Object {
"data": Object {
"name": "a",
"variants": Array [
Object {
"name": "a",
"overrides": Array [
Object {
"contextName": "a",
"values": "b",
},
],
"payload": Object {
"type": "a",
"value": "b",
},
"stickiness": "a",
"weight": 1,
"weightType": "a",
},
],
},
"errors": Array [ "errors": Array [
Object { Object {
"instancePath": "/variants/0/overrides/0/values", "instancePath": "/variants/0/overrides/0/values",

View File

@ -2,7 +2,6 @@
exports[`featureTypeSchema empty 1`] = ` exports[`featureTypeSchema empty 1`] = `
Object { Object {
"data": Object {},
"errors": Array [ "errors": Array [
Object { Object {
"instancePath": "", "instancePath": "",

View File

@ -2,9 +2,6 @@
exports[`sortOrderSchema invalid value type 1`] = ` exports[`sortOrderSchema invalid value type 1`] = `
Object { Object {
"data": Object {
"a": "1",
},
"errors": Array [ "errors": Array [
Object { Object {
"instancePath": "/a", "instancePath": "/a",

View File

@ -13,6 +13,7 @@ test('featureSchema', () => {
operator: 'IN', operator: 'IN',
}, },
], ],
segments: [1],
}, },
], ],
variants: [ variants: [

View File

@ -41,6 +41,12 @@ export const featureStrategySchema = {
sortOrder: { sortOrder: {
type: 'number', type: 'number',
}, },
segments: {
type: 'array',
items: {
type: 'number',
},
},
constraints: { constraints: {
type: 'array', type: 'array',
items: { items: {

View File

@ -17,6 +17,12 @@ export const strategySchema = {
sortOrder: { sortOrder: {
type: 'number', type: 'number',
}, },
segments: {
type: 'array',
items: {
type: 'number',
},
},
constraints: { constraints: {
type: 'array', type: 'array',
items: { items: {

View File

@ -3,9 +3,8 @@ import addFormats from 'ajv-formats';
import { SchemaId, schemas } from './index'; import { SchemaId, schemas } from './index';
import { omitKeys } from '../util/omit-keys'; import { omitKeys } from '../util/omit-keys';
interface ISchemaValidationErrors<T> { interface ISchemaValidationErrors {
schema: SchemaId; schema: SchemaId;
data: T;
errors: ErrorObject[]; errors: ErrorObject[];
} }
@ -17,14 +16,13 @@ const ajv = new Ajv({
addFormats(ajv, ['date-time']); addFormats(ajv, ['date-time']);
export const validateSchema = <T>( export const validateSchema = (
schema: SchemaId, schema: SchemaId,
data: T, data: unknown,
): ISchemaValidationErrors<T> | undefined => { ): ISchemaValidationErrors | undefined => {
if (!ajv.validate(schema, data)) { if (!ajv.validate(schema, data)) {
return { return {
schema, schema,
data: data,
errors: ajv.errors ?? [], errors: ajv.errors ?? [],
}; };
} }

View File

@ -322,6 +322,12 @@ Object {
"projectId": Object { "projectId": Object {
"type": "string", "type": "string",
}, },
"segments": Object {
"items": Object {
"type": "number",
},
"type": "array",
},
"sortOrder": Object { "sortOrder": Object {
"type": "number", "type": "number",
}, },
@ -686,6 +692,12 @@ Object {
"parameters": Object { "parameters": Object {
"$ref": "#/components/schemas/parametersSchema", "$ref": "#/components/schemas/parametersSchema",
}, },
"segments": Object {
"items": Object {
"type": "number",
},
"type": "array",
},
"sortOrder": Object { "sortOrder": Object {
"type": "number", "type": "number",
}, },
@ -889,6 +901,12 @@ Object {
"parameters": Object { "parameters": Object {
"$ref": "#/components/schemas/parametersSchema", "$ref": "#/components/schemas/parametersSchema",
}, },
"segments": Object {
"items": Object {
"type": "number",
},
"type": "array",
},
"sortOrder": Object { "sortOrder": Object {
"type": "number", "type": "number",
}, },