diff --git a/src/core/packages/saved-objects/api-server-internal/src/lib/apis/helpers/validation.test.ts b/src/core/packages/saved-objects/api-server-internal/src/lib/apis/helpers/validation.test.ts index 52f9f822018d4..86a54713fa8a9 100644 --- a/src/core/packages/saved-objects/api-server-internal/src/lib/apis/helpers/validation.test.ts +++ b/src/core/packages/saved-objects/api-server-internal/src/lib/apis/helpers/validation.test.ts @@ -87,7 +87,7 @@ describe('Saved Objects type validation helper', () => { kibanaVersion: defaultVersion, }); const validationError = new Error( - '[attributes.count]: definition for this key is missing: Bad Request' + "[attributes.count]: Additional properties are not allowed ('count' was unexpected): Bad Request" ); const data = createMockObject(typeC, { attributes: { foo: 'hi', count: 1 } }); expect(() => helper.validateObjectForCreate(typeC, data)).toThrowError(validationError); diff --git a/src/core/packages/saved-objects/api-server-internal/src/lib/search/aggregations/validation.test.ts b/src/core/packages/saved-objects/api-server-internal/src/lib/search/aggregations/validation.test.ts index b6b5de1479aa1..0a529a3902a2d 100644 --- a/src/core/packages/saved-objects/api-server-internal/src/lib/search/aggregations/validation.test.ts +++ b/src/core/packages/saved-objects/api-server-internal/src/lib/search/aggregations/validation.test.ts @@ -450,7 +450,7 @@ describe('validateAndConvertAggregations', () => { expect(() => { validateAndConvertAggregations(['foo'], aggregations, mockMappings); }).toThrowErrorMatchingInlineSnapshot( - `"[someAgg.max.script]: definition for this key is missing"` + `"[someAgg.max.script]: Additional properties are not allowed ('script' was unexpected)"` ); }); @@ -474,7 +474,7 @@ describe('validateAndConvertAggregations', () => { expect(() => { validateAndConvertAggregations(['foo'], aggregations, mockMappings); }).toThrowErrorMatchingInlineSnapshot( - `"[someAgg.aggs.nested.max.script]: definition for this key is missing"` + `"[someAgg.aggs.nested.max.script]: Additional properties are not allowed ('script' was unexpected)"` ); }); diff --git a/src/core/packages/saved-objects/base-server-internal/src/model_version/backward_conversion_schema.test.ts b/src/core/packages/saved-objects/base-server-internal/src/model_version/backward_conversion_schema.test.ts index 12bf12db8397a..7fb78ef0b2a4f 100644 --- a/src/core/packages/saved-objects/base-server-internal/src/model_version/backward_conversion_schema.test.ts +++ b/src/core/packages/saved-objects/base-server-internal/src/model_version/backward_conversion_schema.test.ts @@ -125,7 +125,7 @@ describe('convertModelVersionBackwardConversionSchema', () => { const converted = convertModelVersionBackwardConversionSchema(conversionSchema); expect(() => converted(doc)).toThrowErrorMatchingInlineSnapshot( - `"[hello]: definition for this key is missing"` + `"[hello]: Additional properties are not allowed ('hello' was unexpected)"` ); }); diff --git a/src/platform/packages/private/kbn-telemetry-tools/src/schema_ftr_validations/schema_to_config_schema.test.ts b/src/platform/packages/private/kbn-telemetry-tools/src/schema_ftr_validations/schema_to_config_schema.test.ts index bfdd5ad557665..0399f610b0406 100644 --- a/src/platform/packages/private/kbn-telemetry-tools/src/schema_ftr_validations/schema_to_config_schema.test.ts +++ b/src/platform/packages/private/kbn-telemetry-tools/src/schema_ftr_validations/schema_to_config_schema.test.ts @@ -24,7 +24,9 @@ describe(`assertTelemetryPayload`, () => { expect(() => // @ts-expect-error: root doesn't match expected types assertTelemetryPayload({ root: {}, plugins: { properties: {} } }, { version: 'some-version' }) - ).toThrow('[version]: definition for this key is missing. Received `"some-version"`'); + ).toThrow( + '[version]: Additional properties are not allowed (\'version\' was unexpected). Received `"some-version"`' + ); }); test('stats has nested-fields not defined in the schema => fail', () => { expect(() => @@ -34,7 +36,7 @@ describe(`assertTelemetryPayload`, () => { { an_array: [{ docs: { missing: 1 } }] } ) ).toThrow( - '[an_array]: definition for this key is missing. Received `[{"docs":{"missing":1}}]`' + '[an_array]: Additional properties are not allowed (\'an_array\' was unexpected). Received `[{"docs":{"missing":1}}]`' ); expect(() => assertTelemetryPayload( @@ -53,7 +55,9 @@ describe(`assertTelemetryPayload`, () => { }, { an_array: [{ docs: { missing: 1 } }] } ) - ).toThrow('[an_array.0.docs]: definition for this key is missing. Received `{"missing":1}`'); + ).toThrow( + '[an_array.0.docs]: Additional properties are not allowed (\'docs\' was unexpected). Received `{"missing":1}`' + ); expect(() => assertTelemetryPayload( { @@ -75,7 +79,9 @@ describe(`assertTelemetryPayload`, () => { }, { an_array: [{ docs: { missing: 1 } }] } ) - ).toThrow('[an_array.0.docs.missing]: definition for this key is missing. Received `1`'); + ).toThrow( + "[an_array.0.docs.missing]: Additional properties are not allowed ('missing' was unexpected). Received `1`" + ); }); test('stats has nested-fields defined in the schema, but with wrong type => fail', () => { expect(() => diff --git a/src/platform/packages/private/kbn-telemetry-tools/src/schema_ftr_validations/schema_to_config_schema.ts b/src/platform/packages/private/kbn-telemetry-tools/src/schema_ftr_validations/schema_to_config_schema.ts index 4b088fe944651..a003c8154d514 100644 --- a/src/platform/packages/private/kbn-telemetry-tools/src/schema_ftr_validations/schema_to_config_schema.ts +++ b/src/platform/packages/private/kbn-telemetry-tools/src/schema_ftr_validations/schema_to_config_schema.ts @@ -157,8 +157,11 @@ export function assertTelemetryPayload( try { ossTelemetryValidationSchema.validate(stats); } catch (err) { - // "[path.to.key]: definition for this key is missing" - const [, pathToKey] = err.message.match(/^\[(.*)\]\: definition for this key is missing/) ?? []; + // "[path.to.key]: Additional properties are not allowed ('key' was unexpected)" + const [, pathToKey] = + err.message.match( + /^\[(.*)\]\: Additional properties are not allowed \('[^']+' was unexpected\)/ + ) ?? []; if (pathToKey) { err.message += `. Received \`${JSON.stringify(get(stats, pathToKey))}\``; } diff --git a/src/platform/packages/shared/as-code/data-views-schema/src/schema_runtime_field.test.ts b/src/platform/packages/shared/as-code/data-views-schema/src/schema_runtime_field.test.ts index 4c23f1bd0e0cb..3e8179ca4cc55 100644 --- a/src/platform/packages/shared/as-code/data-views-schema/src/schema_runtime_field.test.ts +++ b/src/platform/packages/shared/as-code/data-views-schema/src/schema_runtime_field.test.ts @@ -217,7 +217,7 @@ describe('schema_runtime_fields', () => { // When/Then expect(() => runtimeFieldSchema.validate(runtimeField)).toThrow( - /definition for this key is missing/ + /Additional properties are not allowed \('[^']+' was unexpected\)/ ); }); }); @@ -233,7 +233,7 @@ describe('schema_runtime_fields', () => { // When/Then expect(() => runtimeFieldSchema.validate(runtimeField)).toThrow( - /definition for this key is missing/ + /Additional properties are not allowed \('[^']+' was unexpected\)/ ); }); } diff --git a/src/platform/packages/shared/kbn-config-schema/src/types/array_type.test.ts b/src/platform/packages/shared/kbn-config-schema/src/types/array_type.test.ts index fd571ead65910..0ac8469c14be2 100644 --- a/src/platform/packages/shared/kbn-config-schema/src/types/array_type.test.ts +++ b/src/platform/packages/shared/kbn-config-schema/src/types/array_type.test.ts @@ -213,7 +213,9 @@ describe('#extendsDeep', () => { const forbidSchema = type.extendsDeep({ unknowns: 'forbid' }); expect(() => forbidSchema.validate([{ foo: 'test', bar: 'test' }]) - ).toThrowErrorMatchingInlineSnapshot(`"[0.bar]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[0.bar]: Additional properties are not allowed ('bar' was unexpected)"` + ); }); }); diff --git a/src/platform/packages/shared/kbn-config-schema/src/types/conditional_type.test.ts b/src/platform/packages/shared/kbn-config-schema/src/types/conditional_type.test.ts index d7163e9ed429e..aa0ce68cfc3ce 100644 --- a/src/platform/packages/shared/kbn-config-schema/src/types/conditional_type.test.ts +++ b/src/platform/packages/shared/kbn-config-schema/src/types/conditional_type.test.ts @@ -435,7 +435,9 @@ describe('#extendsDeep', () => { type .extendsDeep({ unknowns: 'forbid' }) .validate({ foo: 'test', test: { bar: 'test', baz: 'test' } }) - ).toThrowErrorMatchingInlineSnapshot(`"[test.baz]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[test.baz]: Additional properties are not allowed ('baz' was unexpected)"` + ); }); }); @@ -473,7 +475,9 @@ describe('#extendsDeep', () => { const forbidSchema = type.extendsDeep({ unknowns: 'forbid' }); expect(() => forbidSchema.validate({ foo: 'not-test', test: { bar: 'test', baz: 'test' } }) - ).toThrowErrorMatchingInlineSnapshot(`"[test.baz]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[test.baz]: Additional properties are not allowed ('baz' was unexpected)"` + ); }); }); }); diff --git a/src/platform/packages/shared/kbn-config-schema/src/types/discriminated_union_type.test.ts b/src/platform/packages/shared/kbn-config-schema/src/types/discriminated_union_type.test.ts index 92a6d2a3594dc..2fab5904d60e7 100644 --- a/src/platform/packages/shared/kbn-config-schema/src/types/discriminated_union_type.test.ts +++ b/src/platform/packages/shared/kbn-config-schema/src/types/discriminated_union_type.test.ts @@ -180,7 +180,9 @@ describe('DiscriminatedUnionType', () => { const input = { type: 'str', string: 'test' }; expect(() => forbidSchema.validate({ ...input, unknown: 'thing' }) - ).toThrowErrorMatchingInlineSnapshot(`"[unknown]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[unknown]: Additional properties are not allowed ('unknown' was unexpected)"` + ); }); }); diff --git a/src/platform/packages/shared/kbn-config-schema/src/types/map_type.test.ts b/src/platform/packages/shared/kbn-config-schema/src/types/map_type.test.ts index f368709fef5b0..76d517cb71ed0 100644 --- a/src/platform/packages/shared/kbn-config-schema/src/types/map_type.test.ts +++ b/src/platform/packages/shared/kbn-config-schema/src/types/map_type.test.ts @@ -219,7 +219,9 @@ describe('#extendsDeep', () => { const forbidSchema = type.extendsDeep({ unknowns: 'forbid' }); expect(() => forbidSchema.validate({ key: { foo: 'test', bar: 'test' } }) - ).toThrowErrorMatchingInlineSnapshot(`"[key.bar]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[key.bar]: Additional properties are not allowed ('bar' was unexpected)"` + ); }); }); }); diff --git a/src/platform/packages/shared/kbn-config-schema/src/types/maybe_type.test.ts b/src/platform/packages/shared/kbn-config-schema/src/types/maybe_type.test.ts index 58ac10055a8d7..70016312ae194 100644 --- a/src/platform/packages/shared/kbn-config-schema/src/types/maybe_type.test.ts +++ b/src/platform/packages/shared/kbn-config-schema/src/types/maybe_type.test.ts @@ -123,6 +123,8 @@ describe('#extendsDeep', () => { const forbidSchema = type.extendsDeep({ unknowns: 'forbid' }); expect(() => forbidSchema.validate({ foo: 'test', bar: 'test' }) - ).toThrowErrorMatchingInlineSnapshot(`"[bar]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[bar]: Additional properties are not allowed ('bar' was unexpected)"` + ); }); }); diff --git a/src/platform/packages/shared/kbn-config-schema/src/types/object_type.test.ts b/src/platform/packages/shared/kbn-config-schema/src/types/object_type.test.ts index cb0be9f41e97b..abfcda3786db0 100644 --- a/src/platform/packages/shared/kbn-config-schema/src/types/object_type.test.ts +++ b/src/platform/packages/shared/kbn-config-schema/src/types/object_type.test.ts @@ -95,7 +95,7 @@ test('fails if key does not exist in schema', () => { }; expect(() => type.validate(value)).toThrowErrorMatchingInlineSnapshot( - `"[bar]: definition for this key is missing"` + `"[bar]: Additional properties are not allowed ('bar' was unexpected)"` ); }); @@ -358,7 +358,9 @@ test('unknowns = `allow` affects only own keys', () => { baz: 'baz', }, }) - ).toThrowErrorMatchingInlineSnapshot(`"[foo.baz]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[foo.baz]: Additional properties are not allowed ('baz' was unexpected)"` + ); }); test('does not allow unknown keys when unknowns = `forbid`', () => { @@ -370,7 +372,9 @@ test('does not allow unknown keys when unknowns = `forbid`', () => { type.validate({ bar: 'baz', }) - ).toThrowErrorMatchingInlineSnapshot(`"[bar]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[bar]: Additional properties are not allowed ('bar' was unexpected)"` + ); }); test('allow and remove unknown keys when unknowns = `ignore`', () => { @@ -421,7 +425,9 @@ test('unknowns = `ignore` respects local preferences in sub-keys', () => { baz: 'baz', }, }) - ).toThrowErrorMatchingInlineSnapshot(`"[foo.baz]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[foo.baz]: Additional properties are not allowed ('baz' was unexpected)"` + ); }); describe('nested unknowns', () => { @@ -458,7 +464,9 @@ describe('nested unknowns', () => { }, }, }) - ).toThrowErrorMatchingInlineSnapshot(`"[myObj.foo.baz]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[myObj.foo.baz]: Additional properties are not allowed ('baz' was unexpected)"` + ); }); test('does not allow unknown keys when unknowns = `forbid`', () => { @@ -474,7 +482,9 @@ describe('nested unknowns', () => { bar: 'baz', }, }) - ).toThrowErrorMatchingInlineSnapshot(`"[myObj.bar]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[myObj.bar]: Additional properties are not allowed ('bar' was unexpected)"` + ); }); test('allow and remove unknown keys when unknowns = `ignore`', () => { @@ -540,7 +550,9 @@ describe('nested unknowns', () => { }, }, }) - ).toThrowErrorMatchingInlineSnapshot(`"[myObj.foo.baz]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[myObj.foo.baz]: Additional properties are not allowed ('baz' was unexpected)"` + ); }); test('parent `allow`, child `ignore` should be honored', () => { @@ -789,7 +801,9 @@ describe('#extends', () => { expect(() => { extended.validate({ string: 'foo', number: 12 }); - }).toThrowErrorMatchingInlineSnapshot(`"[number]: definition for this key is missing"`); + }).toThrowErrorMatchingInlineSnapshot( + `"[number]: Additional properties are not allowed ('number' was unexpected)"` + ); expect(() => { extended.validate({ string: 'foo' }); @@ -981,6 +995,8 @@ describe('#extendsDeep', () => { const forbidSchema = type.extendsDeep({ unknowns: 'forbid' }); expect(() => forbidSchema.validate({ test: { foo: 'test', bar: 'test' } }) - ).toThrowErrorMatchingInlineSnapshot(`"[test.bar]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[test.bar]: Additional properties are not allowed ('bar' was unexpected)"` + ); }); }); diff --git a/src/platform/packages/shared/kbn-config-schema/src/types/object_type.ts b/src/platform/packages/shared/kbn-config-schema/src/types/object_type.ts index cb333b34e3ee8..e7f546e327d11 100644 --- a/src/platform/packages/shared/kbn-config-schema/src/types/object_type.ts +++ b/src/platform/packages/shared/kbn-config-schema/src/types/object_type.ts @@ -212,7 +212,7 @@ export class ObjectType

extends Type> return new ObjectType(extendedProps, extendedOptions); } - protected handleError(type: string, { reason, value }: Record) { + protected handleError(type: string, { reason, value, child }: Record) { switch (type) { case 'any.required': case 'object.base': @@ -220,7 +220,9 @@ export class ObjectType

extends Type> case 'object.parse': return `could not parse object value from json input`; case 'object.unknown': - return `definition for this key is missing`; + return child + ? `Additional properties are not allowed ('${child}' was unexpected)` + : `Additional properties are not allowed (an unexpected property was found)`; case 'object.child': return reason[0]; } diff --git a/src/platform/packages/shared/kbn-config-schema/src/types/record_type.test.ts b/src/platform/packages/shared/kbn-config-schema/src/types/record_type.test.ts index 08e78c0f222ee..f364a329a579c 100644 --- a/src/platform/packages/shared/kbn-config-schema/src/types/record_type.test.ts +++ b/src/platform/packages/shared/kbn-config-schema/src/types/record_type.test.ts @@ -207,7 +207,9 @@ describe('#extendsDeep', () => { const forbidSchema = type.extendsDeep({ unknowns: 'forbid' }); expect(() => forbidSchema.validate({ key: { foo: 'test', bar: 'test' } }) - ).toThrowErrorMatchingInlineSnapshot(`"[key.bar]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[key.bar]: Additional properties are not allowed ('bar' was unexpected)"` + ); }); }); diff --git a/src/platform/packages/shared/kbn-config-schema/src/types/union_type.test.ts b/src/platform/packages/shared/kbn-config-schema/src/types/union_type.test.ts index 23dd12a75cce9..0fb64f4738f1b 100644 --- a/src/platform/packages/shared/kbn-config-schema/src/types/union_type.test.ts +++ b/src/platform/packages/shared/kbn-config-schema/src/types/union_type.test.ts @@ -189,6 +189,8 @@ describe('#extendsDeep', () => { const forbidSchema = type.extendsDeep({ unknowns: 'forbid' }); expect(() => forbidSchema.validate({ foo: 'test', bar: 'test' }) - ).toThrowErrorMatchingInlineSnapshot(`"[bar]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[bar]: Additional properties are not allowed ('bar' was unexpected)"` + ); }); }); diff --git a/src/platform/plugins/shared/content_management/server/rpc/procedures/bulk_get.test.ts b/src/platform/plugins/shared/content_management/server/rpc/procedures/bulk_get.test.ts index 3a97bf4f2d5d7..b4cb3e828d6b1 100644 --- a/src/platform/plugins/shared/content_management/server/rpc/procedures/bulk_get.test.ts +++ b/src/platform/plugins/shared/content_management/server/rpc/procedures/bulk_get.test.ts @@ -88,7 +88,8 @@ describe('RPC -> bulkGet()', () => { }, { input: { ...validInput, unknown: 'foo' }, - expectedError: '[unknown]: definition for this key is missing', + expectedError: + "[unknown]: Additional properties are not allowed ('unknown' was unexpected)", }, ].forEach(({ input, expectedError }) => { const error = validate(input, inputSchema); diff --git a/src/platform/plugins/shared/content_management/server/rpc/procedures/create.test.ts b/src/platform/plugins/shared/content_management/server/rpc/procedures/create.test.ts index 65a5d3ecc70d7..dc7197a5379db 100644 --- a/src/platform/plugins/shared/content_management/server/rpc/procedures/create.test.ts +++ b/src/platform/plugins/shared/content_management/server/rpc/procedures/create.test.ts @@ -75,7 +75,8 @@ describe('RPC -> create()', () => { }, { input: { ...validInput, unknown: 'foo' }, - expectedError: '[unknown]: definition for this key is missing', + expectedError: + "[unknown]: Additional properties are not allowed ('unknown' was unexpected)", }, ].forEach(({ input, expectedError }) => { const error = validate(input, inputSchema); diff --git a/src/platform/plugins/shared/content_management/server/rpc/procedures/delete.test.ts b/src/platform/plugins/shared/content_management/server/rpc/procedures/delete.test.ts index 1771b443d4d26..1a5ece07fdfab 100644 --- a/src/platform/plugins/shared/content_management/server/rpc/procedures/delete.test.ts +++ b/src/platform/plugins/shared/content_management/server/rpc/procedures/delete.test.ts @@ -60,7 +60,8 @@ describe('RPC -> delete()', () => { }, { input: { ...validInput, unknown: 'foo' }, - expectedError: '[unknown]: definition for this key is missing', + expectedError: + "[unknown]: Additional properties are not allowed ('unknown' was unexpected)", }, { input: { ...validInput, id: '' }, // id must have min 1 char diff --git a/src/platform/plugins/shared/content_management/server/rpc/procedures/get.test.ts b/src/platform/plugins/shared/content_management/server/rpc/procedures/get.test.ts index eaba9e4c3cab7..b68a2e5563994 100644 --- a/src/platform/plugins/shared/content_management/server/rpc/procedures/get.test.ts +++ b/src/platform/plugins/shared/content_management/server/rpc/procedures/get.test.ts @@ -60,7 +60,8 @@ describe('RPC -> get()', () => { }, { input: { ...validInput, unknown: 'foo' }, - expectedError: '[unknown]: definition for this key is missing', + expectedError: + "[unknown]: Additional properties are not allowed ('unknown' was unexpected)", }, { input: { ...validInput, id: '' }, // id must have min 1 char diff --git a/src/platform/plugins/shared/content_management/server/rpc/procedures/msearch.test.ts b/src/platform/plugins/shared/content_management/server/rpc/procedures/msearch.test.ts index 4e9aace75fb00..2565b67a81743 100644 --- a/src/platform/plugins/shared/content_management/server/rpc/procedures/msearch.test.ts +++ b/src/platform/plugins/shared/content_management/server/rpc/procedures/msearch.test.ts @@ -81,7 +81,8 @@ describe('RPC -> mSearch()', () => { }, { input: { ...validInput, unknown: 'foo' }, - expectedError: '[unknown]: definition for this key is missing', + expectedError: + "[unknown]: Additional properties are not allowed ('unknown' was unexpected)", }, ].forEach(({ input, expectedError }) => { const error = validate(input, inputSchema); diff --git a/src/platform/plugins/shared/content_management/server/rpc/procedures/search.test.ts b/src/platform/plugins/shared/content_management/server/rpc/procedures/search.test.ts index cd8ae1202d090..992ffd55d1ff4 100644 --- a/src/platform/plugins/shared/content_management/server/rpc/procedures/search.test.ts +++ b/src/platform/plugins/shared/content_management/server/rpc/procedures/search.test.ts @@ -90,7 +90,8 @@ describe('RPC -> search()', () => { }, { input: { ...validInput, unknown: 'foo' }, - expectedError: '[unknown]: definition for this key is missing', + expectedError: + "[unknown]: Additional properties are not allowed ('unknown' was unexpected)", }, ].forEach(({ input, expectedError }) => { const error = validate(input, inputSchema); diff --git a/src/platform/plugins/shared/content_management/server/rpc/procedures/update.test.ts b/src/platform/plugins/shared/content_management/server/rpc/procedures/update.test.ts index ac555f5906db4..b935039c37d58 100644 --- a/src/platform/plugins/shared/content_management/server/rpc/procedures/update.test.ts +++ b/src/platform/plugins/shared/content_management/server/rpc/procedures/update.test.ts @@ -84,7 +84,8 @@ describe('RPC -> update()', () => { }, { input: { ...validInput, unknown: 'foo' }, - expectedError: '[unknown]: definition for this key is missing', + expectedError: + "[unknown]: Additional properties are not allowed ('unknown' was unexpected)", }, ].forEach(({ input, expectedError }) => { const error = validate(input, inputSchema); diff --git a/src/platform/plugins/shared/telemetry/server/config/telemetry_labels.test.ts b/src/platform/plugins/shared/telemetry/server/config/telemetry_labels.test.ts index fede14d8313c1..f271430a8e4a1 100644 --- a/src/platform/plugins/shared/telemetry/server/config/telemetry_labels.test.ts +++ b/src/platform/plugins/shared/telemetry/server/config/telemetry_labels.test.ts @@ -30,6 +30,8 @@ describe('labelsSchema', () => { test('does not allow unknowns', () => { expect(() => { labelsSchema.validate({ foo: 'bar' }); - }).toThrowErrorMatchingInlineSnapshot(`"[foo]: definition for this key is missing"`); + }).toThrowErrorMatchingInlineSnapshot( + `"[foo]: Additional properties are not allowed ('foo' was unexpected)"` + ); }); }); diff --git a/src/platform/test/api_integration/apis/event_annotations/event_annotations.ts b/src/platform/test/api_integration/apis/event_annotations/event_annotations.ts index e624e4ffd112d..fde3d599190e2 100644 --- a/src/platform/test/api_integration/apis/event_annotations/event_annotations.ts +++ b/src/platform/test/api_integration/apis/event_annotations/event_annotations.ts @@ -315,7 +315,7 @@ export default function ({ getService }: FtrProviderContext) { ] as unknown as EventAnnotationGroupSavedObjectAttributes[]; // (coerce the types because these are intentionally malformed) const expectedMessages = [ - 'Invalid data. [extraProp]: definition for this key is missing', + "Invalid data. [extraProp]: Additional properties are not allowed ('extraProp' was unexpected)", 'Invalid data. [title]: expected value of type [string] but got [undefined]', 'Invalid data. [ignoreGlobalFilters]: expected value of type [boolean] but got [string]', ]; @@ -423,7 +423,7 @@ export default function ({ getService }: FtrProviderContext) { ] as unknown as EventAnnotationGroupSavedObjectAttributes[]; // (coerce the types because these are intentionally malformed) const expectedMessages = [ - 'Invalid data. [extraProp]: definition for this key is missing', + "Invalid data. [extraProp]: Additional properties are not allowed ('extraProp' was unexpected)", 'Invalid data. [title]: expected value of type [string] but got [undefined]', 'Invalid data. [ignoreGlobalFilters]: expected value of type [boolean] but got [string]', ]; diff --git a/src/platform/test/api_integration/apis/saved_objects/find.ts b/src/platform/test/api_integration/apis/saved_objects/find.ts index c7f0d073a65dd..163cb1743146a 100644 --- a/src/platform/test/api_integration/apis/saved_objects/find.ts +++ b/src/platform/test/api_integration/apis/saved_objects/find.ts @@ -299,7 +299,7 @@ export default function ({ getService }: FtrProviderContext) { expect(resp.body).to.eql({ error: 'Bad Request', message: - 'Invalid aggregation: [type_count.max.script]: definition for this key is missing: Bad Request', + "Invalid aggregation: [type_count.max.script]: Additional properties are not allowed ('script' was unexpected): Bad Request", statusCode: 400, }); })); diff --git a/src/platform/test/api_integration/apis/saved_objects_management/find.ts b/src/platform/test/api_integration/apis/saved_objects_management/find.ts index 6a9a8283c0bb0..607405b033536 100644 --- a/src/platform/test/api_integration/apis/saved_objects_management/find.ts +++ b/src/platform/test/api_integration/apis/saved_objects_management/find.ts @@ -92,7 +92,8 @@ export default function ({ getService }: FtrProviderContext) { expect(resp.body).to.eql({ statusCode: 400, error: 'Bad Request', - message: '[request query.searchFields]: definition for this key is missing', + message: + "[request query.searchFields]: Additional properties are not allowed ('searchFields' was unexpected)", }); })); }); diff --git a/src/platform/test/api_integration/apis/saved_queries/saved_queries.ts b/src/platform/test/api_integration/apis/saved_queries/saved_queries.ts index c79a891c1dc68..ea685f30fda8e 100644 --- a/src/platform/test/api_integration/apis/saved_queries/saved_queries.ts +++ b/src/platform/test/api_integration/apis/saved_queries/saved_queries.ts @@ -248,7 +248,9 @@ export default function ({ getService }: FtrProviderContext) { findQueries({ foo: 'bar' } as any) .expect(400) .then(({ body }) => { - expect(body.message).to.be('[request body.foo]: definition for this key is missing'); + expect(body.message).to.be( + "[request body.foo]: Additional properties are not allowed ('foo' was unexpected)" + ); })); it('should return expected queries for find saved queries', async () => { diff --git a/x-pack/platform/plugins/shared/actions/server/saved_objects/schemas/raw_connector/v1.test.ts b/x-pack/platform/plugins/shared/actions/server/saved_objects/schemas/raw_connector/v1.test.ts index ed2fe6b3a371c..8d4ff06c26613 100644 --- a/x-pack/platform/plugins/shared/actions/server/saved_objects/schemas/raw_connector/v1.test.ts +++ b/x-pack/platform/plugins/shared/actions/server/saved_objects/schemas/raw_connector/v1.test.ts @@ -39,7 +39,7 @@ describe('Raw Connector Schema', () => { test('invalid action', () => { expect(() => rawConnectorSchema.validate({ ...action, foo: 'bar' })).toThrow( - '[foo]: definition for this key is missing' + "[foo]: Additional properties are not allowed ('foo' was unexpected)" ); }); @@ -52,7 +52,7 @@ describe('Raw Connector Schema', () => { test('invalid preconfigured action', () => { expect(() => rawConnectorSchema.validate({ ...preconfiguredAction, foo: '1' })).toThrow( - '[foo]: definition for this key is missing' + "[foo]: Additional properties are not allowed ('foo' was unexpected)" ); }); }); diff --git a/x-pack/platform/plugins/shared/actions/server/sub_action_framework/executor.test.ts b/x-pack/platform/plugins/shared/actions/server/sub_action_framework/executor.test.ts index 962b9937395a9..9332f205f819b 100644 --- a/x-pack/platform/plugins/shared/actions/server/sub_action_framework/executor.test.ts +++ b/x-pack/platform/plugins/shared/actions/server/sub_action_framework/executor.test.ts @@ -198,7 +198,7 @@ describe('Executor', () => { } catch (e) { expect(getErrorSource(e)).toBe(TaskErrorSource.USER); expect(e.message).toBe( - 'Request validation failed (Error: [foo]: definition for this key is missing)' + "Request validation failed (Error: [foo]: Additional properties are not allowed ('foo' was unexpected))" ); } }); diff --git a/x-pack/platform/plugins/shared/alerting/server/application/rule/methods/bulk_edit/bulk_edit_rules.test.ts b/x-pack/platform/plugins/shared/alerting/server/application/rule/methods/bulk_edit/bulk_edit_rules.test.ts index 29364bd974639..4fe12253b3eb7 100644 --- a/x-pack/platform/plugins/shared/alerting/server/application/rule/methods/bulk_edit/bulk_edit_rules.test.ts +++ b/x-pack/platform/plugins/shared/alerting/server/application/rule/methods/bulk_edit/bulk_edit_rules.test.ts @@ -1524,7 +1524,7 @@ describe('bulkEdit()', () => { errors: [ { message: - 'Error validating bulk edit rules operations - [group]: definition for this key is missing', + "Error validating bulk edit rules operations - [group]: Additional properties are not allowed ('group' was unexpected)", rule: { id: '1', name: 'my rule name', @@ -1574,7 +1574,7 @@ describe('bulkEdit()', () => { errors: [ { message: - 'Error validating bulk edit rules operations - [frequency]: definition for this key is missing', + "Error validating bulk edit rules operations - [frequency]: Additional properties are not allowed ('frequency' was unexpected)", rule: { id: '1', name: 'my rule name', @@ -1622,7 +1622,7 @@ describe('bulkEdit()', () => { errors: [ { message: - 'Error validating bulk edit rules operations - [alertsFilter]: definition for this key is missing', + "Error validating bulk edit rules operations - [alertsFilter]: Additional properties are not allowed ('alertsFilter' was unexpected)", rule: { id: '1', name: 'my rule name', diff --git a/x-pack/platform/plugins/shared/alerting/server/application/rule/methods/create/create_rule.test.ts b/x-pack/platform/plugins/shared/alerting/server/application/rule/methods/create/create_rule.test.ts index 28702637a84f8..dee7843c353df 100644 --- a/x-pack/platform/plugins/shared/alerting/server/application/rule/methods/create/create_rule.test.ts +++ b/x-pack/platform/plugins/shared/alerting/server/application/rule/methods/create/create_rule.test.ts @@ -4491,7 +4491,7 @@ describe('create()', () => { const data = getMockData({ actions: [], systemActions: [systemAction] }); await expect(() => rulesClient.create({ data })).rejects.toMatchInlineSnapshot( - `[Error: Error validating create data - [systemActions.0.group]: definition for this key is missing]` + `[Error: Error validating create data - [systemActions.0.group]: Additional properties are not allowed ('group' was unexpected)]` ); }); @@ -4510,7 +4510,7 @@ describe('create()', () => { const data = getMockData({ actions: [], systemActions: [systemAction] }); await expect(() => rulesClient.create({ data })).rejects.toMatchInlineSnapshot( - `[Error: Error validating create data - [systemActions.0.frequency]: definition for this key is missing]` + `[Error: Error validating create data - [systemActions.0.frequency]: Additional properties are not allowed ('frequency' was unexpected)]` ); }); @@ -4527,7 +4527,7 @@ describe('create()', () => { const data = getMockData({ systemActions: [systemAction] }); await expect(() => rulesClient.create({ data })).rejects.toMatchInlineSnapshot( - `[Error: Error validating create data - [systemActions.0.alertsFilter]: definition for this key is missing]` + `[Error: Error validating create data - [systemActions.0.alertsFilter]: Additional properties are not allowed ('alertsFilter' was unexpected)]` ); }); diff --git a/x-pack/platform/plugins/shared/alerting/server/application/rule/methods/update/update_rule.test.ts b/x-pack/platform/plugins/shared/alerting/server/application/rule/methods/update/update_rule.test.ts index 1eb834c047355..c69761a3a5b20 100644 --- a/x-pack/platform/plugins/shared/alerting/server/application/rule/methods/update/update_rule.test.ts +++ b/x-pack/platform/plugins/shared/alerting/server/application/rule/methods/update/update_rule.test.ts @@ -3984,7 +3984,7 @@ describe('update()', () => { }, }) ).rejects.toMatchInlineSnapshot( - `[Error: Error validating update data - [systemActions.0.group]: definition for this key is missing]` + `[Error: Error validating update data - [systemActions.0.group]: Additional properties are not allowed ('group' was unexpected)]` ); }); @@ -4017,7 +4017,7 @@ describe('update()', () => { }, }) ).rejects.toMatchInlineSnapshot( - `[Error: Error validating update data - [systemActions.0.frequency]: definition for this key is missing]` + `[Error: Error validating update data - [systemActions.0.frequency]: Additional properties are not allowed ('frequency' was unexpected)]` ); }); @@ -4048,7 +4048,7 @@ describe('update()', () => { }, }) ).rejects.toMatchInlineSnapshot( - `[Error: Error validating update data - [systemActions.0.alertsFilter]: definition for this key is missing]` + `[Error: Error validating update data - [systemActions.0.alertsFilter]: Additional properties are not allowed ('alertsFilter' was unexpected)]` ); }); diff --git a/x-pack/platform/plugins/shared/features/server/feature_registry.test.ts b/x-pack/platform/plugins/shared/features/server/feature_registry.test.ts index c266d978eb6ca..4345b710dc792 100644 --- a/x-pack/platform/plugins/shared/features/server/feature_registry.test.ts +++ b/x-pack/platform/plugins/shared/features/server/feature_registry.test.ts @@ -535,7 +535,7 @@ describe('FeatureRegistry', () => { .toThrowErrorMatchingInlineSnapshot(` "[privileges]: types that failed validation: - [privileges.0]: expected value to equal [null] - - [privileges.1.foo]: definition for this key is missing" + - [privileges.1.foo]: Additional properties are not allowed ('foo' was unexpected)" `); }); diff --git a/x-pack/platform/plugins/shared/security/server/routes/api_keys/invalidate.test.ts b/x-pack/platform/plugins/shared/security/server/routes/api_keys/invalidate.test.ts index 3278013241b83..e94005ff10cf1 100644 --- a/x-pack/platform/plugins/shared/security/server/routes/api_keys/invalidate.test.ts +++ b/x-pack/platform/plugins/shared/security/server/routes/api_keys/invalidate.test.ts @@ -109,7 +109,7 @@ describe('Invalidate API keys', () => { 'request body' ) ).toThrowErrorMatchingInlineSnapshot( - `"[request body.apiKeys.0.unknown]: definition for this key is missing"` + `"[request body.apiKeys.0.unknown]: Additional properties are not allowed ('unknown' was unexpected)"` ); }); }); diff --git a/x-pack/platform/plugins/shared/security/server/routes/authentication/common.test.ts b/x-pack/platform/plugins/shared/security/server/routes/authentication/common.test.ts index ab376c07cfe9a..2ede3f35ddbe0 100644 --- a/x-pack/platform/plugins/shared/security/server/routes/authentication/common.test.ts +++ b/x-pack/platform/plugins/shared/security/server/routes/authentication/common.test.ts @@ -341,7 +341,9 @@ describe('Common authentication routes', () => { currentURL: '/some-url', UnknownArg: 'arg', }) - ).toThrowErrorMatchingInlineSnapshot(`"[UnknownArg]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[UnknownArg]: Additional properties are not allowed ('UnknownArg' was unexpected)"` + ); expect(() => bodyValidator.validate({ diff --git a/x-pack/platform/plugins/shared/security/server/routes/authorization/roles/model/put_payload.test.ts b/x-pack/platform/plugins/shared/security/server/routes/authorization/roles/model/put_payload.test.ts index b9e772e6451db..026d839f37eb2 100644 --- a/x-pack/platform/plugins/shared/security/server/routes/authorization/roles/model/put_payload.test.ts +++ b/x-pack/platform/plugins/shared/security/server/routes/authorization/roles/model/put_payload.test.ts @@ -83,7 +83,7 @@ describe('Put payload schema', () => { kibana: [{ _reserved: ['customApplication1'], spaces: ['*'] }], }) ).toThrowErrorMatchingInlineSnapshot( - `"[kibana.0._reserved]: definition for this key is missing"` + `"[kibana.0._reserved]: Additional properties are not allowed ('_reserved' was unexpected)"` ); }); @@ -155,7 +155,7 @@ describe('Put payload schema', () => { kibana: [{ _reserved: ['customApplication1'], spaces: ['marketing'] }], }) ).toThrowErrorMatchingInlineSnapshot( - `"[kibana.0._reserved]: definition for this key is missing"` + `"[kibana.0._reserved]: Additional properties are not allowed ('_reserved' was unexpected)"` ); }); }); diff --git a/x-pack/platform/plugins/shared/task_manager/server/integration_tests/task_state_validation.test.ts b/x-pack/platform/plugins/shared/task_manager/server/integration_tests/task_state_validation.test.ts index 294b4fd905807..d9f7aa25f16d3 100644 --- a/x-pack/platform/plugins/shared/task_manager/server/integration_tests/task_state_validation.test.ts +++ b/x-pack/platform/plugins/shared/task_manager/server/integration_tests/task_state_validation.test.ts @@ -176,7 +176,7 @@ describe('task state validation', () => { baz: 'test', }); expect(errorLogSpy).toHaveBeenCalledWith( - `Task fooType "${task.id}" failed: Error: [invalidField]: definition for this key is missing`, + `Task fooType "${task.id}" failed: Error: [invalidField]: Additional properties are not allowed ('invalidField' was unexpected)`, expect.anything() ); }); diff --git a/x-pack/platform/plugins/shared/task_manager/server/task_type_dictionary.test.ts b/x-pack/platform/plugins/shared/task_manager/server/task_type_dictionary.test.ts index a2b36b1b53389..944cd0a717a0e 100644 --- a/x-pack/platform/plugins/shared/task_manager/server/task_type_dictionary.test.ts +++ b/x-pack/platform/plugins/shared/task_manager/server/task_type_dictionary.test.ts @@ -119,7 +119,7 @@ describe('taskTypeDictionary', () => { }; expect(runsanitize).toThrowErrorMatchingInlineSnapshot( - `"[fail]: definition for this key is missing"` + `"[fail]: Additional properties are not allowed ('fail' was unexpected)"` ); }); diff --git a/x-pack/platform/plugins/shared/task_manager/server/task_validator.test.ts b/x-pack/platform/plugins/shared/task_manager/server/task_validator.test.ts index ddaa4c66b12de..78092239ea101 100644 --- a/x-pack/platform/plugins/shared/task_manager/server/task_validator.test.ts +++ b/x-pack/platform/plugins/shared/task_manager/server/task_validator.test.ts @@ -434,7 +434,9 @@ describe('TaskValidator', () => { const task = taskManagerMock.createTask({ state: { foo: 'foo', bar: 'bar' } }); expect(() => taskValidator.getValidatedTaskInstanceForUpdating(task) - ).toThrowErrorMatchingInlineSnapshot(`"[bar]: definition for this key is missing"`); + ).toThrowErrorMatchingInlineSnapshot( + `"[bar]: Additional properties are not allowed ('bar' was unexpected)"` + ); }); }); diff --git a/x-pack/platform/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/update.ts b/x-pack/platform/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/update.ts index f1d28d63adf6e..f5f2159d1beaf 100644 --- a/x-pack/platform/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/update.ts +++ b/x-pack/platform/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/update.ts @@ -778,7 +778,8 @@ export default function createUpdateTests({ getService }: FtrProviderContext) { expect(response.body).to.eql({ statusCode: 400, error: 'Bad Request', - message: '[request body.rule_type_id]: definition for this key is missing', + message: + "[request body.rule_type_id]: Additional properties are not allowed ('rule_type_id' was unexpected)", }); break; default: diff --git a/x-pack/platform/test/alerting_api_integration/security_and_spaces/group5/tests/alerting/bulk_edit_params.ts b/x-pack/platform/test/alerting_api_integration/security_and_spaces/group5/tests/alerting/bulk_edit_params.ts index ab0b8e9d8b8b4..f6817543206d4 100644 --- a/x-pack/platform/test/alerting_api_integration/security_and_spaces/group5/tests/alerting/bulk_edit_params.ts +++ b/x-pack/platform/test/alerting_api_integration/security_and_spaces/group5/tests/alerting/bulk_edit_params.ts @@ -401,7 +401,7 @@ export default function createBulkEditRuleParamsWithReadAuthTests({ expect(response.body.total).toEqual(1); expect(response.body.errors.length).toEqual(1); expect(response.body.errors[0].message).toEqual( - `params invalid: [exceptionsList]: definition for this key is missing` + `params invalid: [exceptionsList]: Additional properties are not allowed ('exceptionsList' was unexpected)` ); expect(response.body.skipped).toEqual([]); expect(response.body.rules).toEqual([]); diff --git a/x-pack/platform/test/alerting_api_integration/spaces_only/tests/alerting/group1/find.ts b/x-pack/platform/test/alerting_api_integration/spaces_only/tests/alerting/group1/find.ts index 5ff2887382927..6f51ab816fa68 100644 --- a/x-pack/platform/test/alerting_api_integration/spaces_only/tests/alerting/group1/find.ts +++ b/x-pack/platform/test/alerting_api_integration/spaces_only/tests/alerting/group1/find.ts @@ -373,7 +373,8 @@ export default function createFindTests({ getService }: FtrProviderContext) { expect(response.body).to.eql({ statusCode: 400, error: 'Bad Request', - message: '[request query.rule_type_ids]: definition for this key is missing', + message: + "[request query.rule_type_ids]: Additional properties are not allowed ('rule_type_ids' was unexpected)", }); }); @@ -394,7 +395,8 @@ export default function createFindTests({ getService }: FtrProviderContext) { expect(response.body).to.eql({ statusCode: 400, error: 'Bad Request', - message: '[request query.consumers]: definition for this key is missing', + message: + "[request query.consumers]: Additional properties are not allowed ('consumers' was unexpected)", }); }); }); diff --git a/x-pack/platform/test/api_integration/apis/lens/visualizations/search/validation.ts b/x-pack/platform/test/api_integration/apis/lens/visualizations/search/validation.ts index 65c8da589bd34..0c114eff1ce33 100644 --- a/x-pack/platform/test/api_integration/apis/lens/visualizations/search/validation.ts +++ b/x-pack/platform/test/api_integration/apis/lens/visualizations/search/validation.ts @@ -23,7 +23,7 @@ export default function ({ getService }: FtrProviderContext) { expect(response.status).to.be(400); expect(response.body.message).to.be( - '[request query.xyz]: definition for this key is missing' + "[request query.xyz]: Additional properties are not allowed ('xyz' was unexpected)" ); }); }); diff --git a/x-pack/platform/test/api_integration/apis/spaces/set_solution_space.ts b/x-pack/platform/test/api_integration/apis/spaces/set_solution_space.ts index 1e378edc485b1..8e2467dd47269 100644 --- a/x-pack/platform/test/api_integration/apis/spaces/set_solution_space.ts +++ b/x-pack/platform/test/api_integration/apis/spaces/set_solution_space.ts @@ -170,7 +170,7 @@ export default function ({ getService }: FtrProviderContext) { .expect(400); expect(body.message).to.eql( - '[request body]: types that failed validation:\n- [request body.0.solution_type]: definition for this key is missing\n- [request body.1.solution]: definition for this key is missing' + "[request body]: types that failed validation:\n- [request body.0.solution_type]: Additional properties are not allowed ('solution_type' was unexpected)\n- [request body.1.solution]: Additional properties are not allowed ('solution' was unexpected)" ); }); diff --git a/x-pack/platform/test/serverless/api_integration/test_suites/saved_objects_management/find.ts b/x-pack/platform/test/serverless/api_integration/test_suites/saved_objects_management/find.ts index 41815cdcb0c35..1a633571b0573 100644 --- a/x-pack/platform/test/serverless/api_integration/test_suites/saved_objects_management/find.ts +++ b/x-pack/platform/test/serverless/api_integration/test_suites/saved_objects_management/find.ts @@ -91,7 +91,8 @@ export default function ({ getService }: FtrProviderContext) { expect(body).to.eql({ statusCode: 400, error: 'Bad Request', - message: '[request query.searchFields]: definition for this key is missing', + message: + "[request query.searchFields]: Additional properties are not allowed ('searchFields' was unexpected)", }); }); }); diff --git a/x-pack/solutions/security/plugins/lists/server/config.test.ts b/x-pack/solutions/security/plugins/lists/server/config.test.ts index f4ca8861a375b..171ac9365520b 100644 --- a/x-pack/solutions/security/plugins/lists/server/config.test.ts +++ b/x-pack/solutions/security/plugins/lists/server/config.test.ts @@ -22,7 +22,7 @@ describe('config_schema', () => { ...getConfigMock(), }; expect(() => ConfigSchema.validate(mock)).toThrow( - '[madeUpValue]: definition for this key is missing' + "[madeUpValue]: Additional properties are not allowed ('madeUpValue' was unexpected)" ); });