mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	test: add test for undefined fields in getObjectsFields
This commit is contained in:
		| @@ -120,7 +120,7 @@ module.exports = function (module) { | |||||||
| 			cache.set(key, cachedData[key]); | 			cache.set(key, cachedData[key]); | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| 		if (!fields.length) { | 		if (!Array.isArray(fields) || !fields.length) { | ||||||
| 			return keys.map(key => (cachedData[key] ? { ...cachedData[key] } : null)); | 			return keys.map(key => (cachedData[key] ? { ...cachedData[key] } : null)); | ||||||
| 		} | 		} | ||||||
| 		return keys.map((key) => { | 		return keys.map((key) => { | ||||||
|   | |||||||
| @@ -142,7 +142,9 @@ SELECT h."data"->>$2::TEXT f | |||||||
| 		if (!key) { | 		if (!key) { | ||||||
| 			return null; | 			return null; | ||||||
| 		} | 		} | ||||||
|  | 		if (!Array.isArray(fields) || !fields.length) { | ||||||
|  | 			return await module.getObject(key); | ||||||
|  | 		} | ||||||
| 		const res = await module.pool.query({ | 		const res = await module.pool.query({ | ||||||
| 			name: 'getObjectFields', | 			name: 'getObjectFields', | ||||||
| 			text: ` | 			text: ` | ||||||
| @@ -174,7 +176,8 @@ SELECT (SELECT jsonb_object_agg(f, d."value") | |||||||
| 		if (!Array.isArray(keys) || !keys.length) { | 		if (!Array.isArray(keys) || !keys.length) { | ||||||
| 			return []; | 			return []; | ||||||
| 		} | 		} | ||||||
| 		if (!fields.length) { |  | ||||||
|  | 		if (!Array.isArray(fields) || !fields.length) { | ||||||
| 			return await module.getObjects(keys); | 			return await module.getObjects(keys); | ||||||
| 		} | 		} | ||||||
| 		const res = await module.pool.query({ | 		const res = await module.pool.query({ | ||||||
|   | |||||||
| @@ -324,6 +324,15 @@ describe('Hash methods', () => { | |||||||
| 			assert.strictEqual(Number(objects[1].age), 3); | 			assert.strictEqual(Number(objects[1].age), 3); | ||||||
| 			assert.strictEqual(!!objects[2], false); | 			assert.strictEqual(!!objects[2], false); | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
|  | 		it('should return objects if fields is not an array', async () => { | ||||||
|  | 			const objects = await db.getObjectsFields(['testObject8', 'testObject9', 'doesnotexist'], undefined); | ||||||
|  | 			assert.strictEqual(objects[0].name, 'baris'); | ||||||
|  | 			assert.strictEqual(Number(objects[0].age), 99); | ||||||
|  | 			assert.strictEqual(objects[1].name, 'ginger'); | ||||||
|  | 			assert.strictEqual(Number(objects[1].age), 3); | ||||||
|  | 			assert.strictEqual(!!objects[2], false); | ||||||
|  | 		}); | ||||||
| 	}); | 	}); | ||||||
|  |  | ||||||
| 	describe('getObjectKeys()', () => { | 	describe('getObjectKeys()', () => { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user