fix: generate new block ids on create (#3871)

This commit is contained in:
Dan Ribbens
2023-10-27 13:32:20 -04:00
committed by GitHub
parent 89f273bf89
commit 3404bab83f
2 changed files with 19 additions and 1 deletions

View File

@@ -2,7 +2,8 @@ import ObjectID from 'bson-objectid'
import type { Field, FieldHook } from '../config/types'
const generateID: FieldHook = ({ value }) => value || new ObjectID().toHexString()
const generateID: FieldHook = ({ operation, value }) =>
(operation !== 'create' ? value : false) || new ObjectID().toHexString()
export const baseIDField: Field = {
name: 'id',

View File

@@ -775,6 +775,23 @@ describe('Fields', () => {
expect(blockFieldsFail.docs).toHaveLength(0)
})
it('should create when existing block ids are used', async () => {
const blockFields = await payload.find({
collection: 'block-fields',
limit: 1,
})
const [doc] = blockFields.docs
const result = await payload.create({
collection: 'block-fields',
data: {
...doc,
},
})
expect(result.id).toBeDefined()
})
})
describe('json', () => {