diff --git a/src/lib/openapi/spec/sdk-context-schema.test.ts b/src/lib/openapi/spec/sdk-context-schema.test.ts index 38ce31511e..79b0cf63d2 100644 --- a/src/lib/openapi/spec/sdk-context-schema.test.ts +++ b/src/lib/openapi/spec/sdk-context-schema.test.ts @@ -25,3 +25,33 @@ test('sdkContextSchema', () => validateSchema(sdkContextSchema.$id, data) === undefined, ), )); + +test('using objects as values (outside of the `properties` property) is invalid', () => { + const inputs = [ + { + appName: 'test', + array: [], + }, + { + appName: 'test', + object: {}, + }, + { + appName: 'test', + properties: { + array: [], + }, + }, + { + appName: 'test', + properties: { + object: {}, + }, + }, + ]; + + const validationResults = inputs.map((input) => + validateSchema(sdkContextSchema.$id, input), + ); + expect(validationResults.every((error) => error !== undefined)).toBe(true); +}); diff --git a/src/lib/openapi/spec/sdk-context-schema.ts b/src/lib/openapi/spec/sdk-context-schema.ts index 61080b9023..8412333a04 100644 --- a/src/lib/openapi/spec/sdk-context-schema.ts +++ b/src/lib/openapi/spec/sdk-context-schema.ts @@ -5,7 +5,9 @@ export const sdkContextSchema = { description: 'The Unleash context as modeled in client SDKs', type: 'object', required: ['appName'], - additionalProperties: true, + additionalProperties: { + type: 'string', + }, properties: { appName: { type: 'string',