1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-06-23 01:16:27 +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 committed by GitHub
parent de4ba0970f
commit 286b016b04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 17 additions and 76 deletions

View File

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

View File

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

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,7 +2,6 @@
exports[`contextFieldSchema empty 1`] = ` exports[`contextFieldSchema empty 1`] = `
Object { Object {
"data": Object {},
"errors": Array [ "errors": Array [
Object { Object {
"instancePath": "", "instancePath": "",

View File

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

View File

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

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", "instancePath": "/strategies/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,7 +2,6 @@
exports[`meSchema empty 1`] = ` exports[`meSchema empty 1`] = `
Object { Object {
"data": Object {},
"errors": Array [ "errors": Array [
Object { Object {
"instancePath": "", "instancePath": "",
@ -20,11 +19,6 @@ Object {
exports[`meSchema missing permissions 1`] = ` exports[`meSchema missing permissions 1`] = `
Object { Object {
"data": Object {
"user": Object {
"id": 1,
},
},
"errors": Array [ "errors": Array [
Object { Object {
"instancePath": "", "instancePath": "",
@ -42,13 +36,6 @@ Object {
exports[`meSchema missing splash 1`] = ` exports[`meSchema missing splash 1`] = `
Object { Object {
"data": Object {
"feedback": Array [],
"permissions": Array [],
"user": Object {
"id": 1,
},
},
"errors": Array [ "errors": Array [
Object { Object {
"instancePath": "", "instancePath": "",

View File

@ -2,7 +2,6 @@
exports[`roleSchema 1`] = ` exports[`roleSchema 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

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

View File

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

View File

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

View File

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

View File

@ -17,6 +17,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

@ -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

@ -748,6 +748,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",
}, },