From e85662a536bf352e023f8c8747ea812b0df59f8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 11 Feb 2025 13:28:25 -0500 Subject: [PATCH] fix: getUserField so that it always returns null if field doesn't exist user.getUserField('foo', 'bar') returned undefined vs user.getUserField('1', 'bar') which returned null --- src/user/data.js | 2 +- test/user.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/user/data.js b/src/user/data.js index ec643f729b..c9d8cb5ae6 100644 --- a/src/user/data.js +++ b/src/user/data.js @@ -161,7 +161,7 @@ module.exports = function (User) { User.getUserField = async function (uid, field) { const user = await User.getUserFields(uid, [field]); - return user ? user[field] : null; + return user && user.hasOwnProperty(field) ? user[field] : null; }; User.getUserFields = async function (uid, fields) { diff --git a/test/user.js b/test/user.js index 84d8711260..579386b166 100644 --- a/test/user.js +++ b/test/user.js @@ -680,6 +680,12 @@ describe('User', () => { done(); }); }); + + it('should return null if field or user doesn not exist', async () => { + assert.strictEqual(await User.getUserField('1', 'doesnotexist'), null); + assert.strictEqual(await User.getUserField('doesnotexistkey', 'doesnotexist'), null); + assert.strictEqual(await User.getUserField('0', 'doesnotexist'), null); + }); }); describe('profile methods', () => {