1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-04-19 01:17:18 +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`] = `
Object {
"data": Object {},
"errors": Array [
Object {
"instancePath": "",

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,19 +2,6 @@
exports[`featureSchema constraints 1`] = `
Object {
"data": Object {
"name": "a",
"strategies": Array [
Object {
"constraints": Array [
Object {
"contextName": "a",
},
],
"name": "a",
},
],
},
"errors": Array [
Object {
"instancePath": "/strategies/0",
@ -32,27 +19,6 @@ Object {
exports[`featureSchema overrides 1`] = `
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 [
Object {
"instancePath": "/variants/0/overrides/0/values",

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -748,6 +748,12 @@ Object {
"parameters": Object {
"$ref": "#/components/schemas/parametersSchema",
},
"segments": Object {
"items": Object {
"type": "number",
},
"type": "array",
},
"sortOrder": Object {
"type": "number",
},