diff --git a/apps/e2e/tests/backend/endpoints/api/v1/internal/config-overrides.test.ts b/apps/e2e/tests/backend/endpoints/api/v1/internal/config.test.ts similarity index 94% rename from apps/e2e/tests/backend/endpoints/api/v1/internal/config-overrides.test.ts rename to apps/e2e/tests/backend/endpoints/api/v1/internal/config.test.ts index 07605e191..80dfc9303 100644 --- a/apps/e2e/tests/backend/endpoints/api/v1/internal/config-overrides.test.ts +++ b/apps/e2e/tests/backend/endpoints/api/v1/internal/config.test.ts @@ -380,6 +380,36 @@ it("returns an error when the oauth config is misconfigured", async ({ expect }) `); }); +it("returns an error when config override contains non-existent fields", async ({ expect }) => { + const { adminAccessToken } = await Project.createAndSwitch({ + config: { + magic_link_enabled: true, + } + }); + + // Test non-existent top-level field + const invalidTopLevelResponse = await niceBackendFetch("/api/v1/internal/configs/overrides", { + method: "PATCH", + accessType: "admin", + headers: { + 'x-stack-admin-access-token': adminAccessToken, + }, + body: { + config_override_string: JSON.stringify({ + 'nonExistentField': 'some-value', + }), + }, + }); + + expect(invalidTopLevelResponse).toMatchInlineSnapshot(` + NiceResponse { + "status": 400, + "body": "[ERROR] The key \\"nonExistentField\\" is not valid for the schema.", + "headers": Headers {