Skip to content

Commit 6dc61ae

Browse files
authored
fix(db-mongodb): fallback version when not selected (#12158)
When doing `payload.db.queryDrafts` with `select` without `version`, or simply your select looks like: `select: { version: { nonExistingField: true } }` - the `queryDrafts` function will crash because it tries to access the `version` field. This PR adds a fallback.
1 parent fdff587 commit 6dc61ae

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

packages/db-mongodb/src/queryDrafts.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ export const queryDrafts: QueryDrafts = async function queryDrafts(
166166

167167
for (let i = 0; i < result.docs.length; i++) {
168168
const id = result.docs[i].parent
169-
result.docs[i] = result.docs[i].version
169+
result.docs[i] = result.docs[i].version ?? {}
170170
result.docs[i].id = id
171171
}
172172

test/database/int.spec.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2403,4 +2403,15 @@ describe('database', () => {
24032403

24042404
payload.db.allowAdditionalKeys = false
24052405
})
2406+
2407+
it('should not crash when the version field is not selected', async () => {
2408+
const customID = await payload.create({ collection: 'custom-ids', data: {} })
2409+
const res = await payload.db.queryDrafts({
2410+
collection: 'custom-ids',
2411+
where: { parent: { equals: customID.id } },
2412+
select: { parent: true },
2413+
})
2414+
2415+
expect(res.docs[0].id).toBe(customID.id)
2416+
})
24062417
})

0 commit comments

Comments
 (0)