fix: generate new block ids on create (#3871)
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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', () => {
|
||||
|
||||
Reference in New Issue
Block a user