From 29fcd6b419a51d425eb8c5e8d3ae70d99cbf9280 Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Mon, 17 Nov 2025 16:52:20 +0100 Subject: [PATCH] fix --- spec/MongoTransform.spec.js | 17 +++++++++++++++++ src/Adapters/Storage/Mongo/MongoTransform.js | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/spec/MongoTransform.spec.js b/spec/MongoTransform.spec.js index 60adb4b7f0..96a38f36dd 100644 --- a/spec/MongoTransform.spec.js +++ b/spec/MongoTransform.spec.js @@ -521,6 +521,23 @@ describe('parseObjectToMongoObjectForCreate', () => { expect(output.authData).toBe('random'); done(); }); + + it('should only transform authData.provider.id for _User class', () => { + // Test that for _User class, authData.facebook.id is transformed + const userInput = { + 'authData.facebook.id': '10000000000000001', + }; + const userOutput = transform.transformWhere('_User', userInput, { fields: {} }); + expect(userOutput['_auth_data_facebook.id']).toBe('10000000000000001'); + + // Test that for non-User classes, authData.facebook.id is NOT transformed + const customInput = { + 'authData.facebook.id': '10000000000000001', + }; + const customOutput = transform.transformWhere('SpamAlerts', customInput, { fields: {} }); + expect(customOutput['authData.facebook.id']).toBe('10000000000000001'); + expect(customOutput['_auth_data_facebook.id']).toBeUndefined(); + }); }); it('cannot have a custom field name beginning with underscore', done => { diff --git a/src/Adapters/Storage/Mongo/MongoTransform.js b/src/Adapters/Storage/Mongo/MongoTransform.js index f78c972bdc..34481a090b 100644 --- a/src/Adapters/Storage/Mongo/MongoTransform.js +++ b/src/Adapters/Storage/Mongo/MongoTransform.js @@ -305,7 +305,7 @@ function transformQueryKeyValue(className, key, value, schema, count = false) { default: { // Other auth data const authDataMatch = key.match(/^authData\.([a-zA-Z0-9_]+)\.id$/); - if (authDataMatch) { + if (authDataMatch && className === '_User') { const provider = authDataMatch[1]; // Special-case auth data. return { key: `_auth_data_${provider}.id`, value };