chore: misc fixes
This commit is contained in:
@@ -56,12 +56,6 @@ export const init: Init = function init(this: MongooseAdapter) {
|
||||
this.autoPluralization === true ? undefined : collection.slug,
|
||||
) as CollectionModel
|
||||
this.collections[collection.slug] = model
|
||||
|
||||
// TS expect error only needed until we launch 2.0.0
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
this.payload.collections[collection.slug] = {
|
||||
config: collection,
|
||||
}
|
||||
})
|
||||
|
||||
const model = buildGlobalModel(this.payload.config)
|
||||
|
||||
@@ -299,7 +299,8 @@ export const buildTable = ({
|
||||
})
|
||||
let colType = adapter.idType === 'uuid' ? 'uuid' : 'integer'
|
||||
|
||||
const relatedCollectionCustomIDType = adapter.payload[relationshipConfig.slug]?.customIDType
|
||||
const relatedCollectionCustomIDType =
|
||||
adapter.payload.collections[relationshipConfig.slug]?.customIDType
|
||||
|
||||
if (relatedCollectionCustomIDType === 'number') colType = 'numeric'
|
||||
if (relatedCollectionCustomIDType === 'text') colType = 'varchar'
|
||||
|
||||
@@ -35,7 +35,10 @@ export const getPayloadHMR = async (options: InitOptions): Promise<Payload> => {
|
||||
cached.payload.config = config
|
||||
|
||||
cached.payload.collections = config.collections.reduce((collections, collection) => {
|
||||
collections[collection.slug] = { config: collection }
|
||||
collections[collection.slug] = {
|
||||
config: collection,
|
||||
customIDType: cached.payload.collections[collection.slug]?.customIDType,
|
||||
}
|
||||
return collections
|
||||
}, {})
|
||||
|
||||
|
||||
@@ -15,6 +15,8 @@ export default buildConfigWithDefaults({
|
||||
throw new Error('ID was not sanitized to a number properly')
|
||||
}
|
||||
}
|
||||
|
||||
return args
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -48,6 +48,34 @@ describe('database', () => {
|
||||
}
|
||||
})
|
||||
|
||||
describe('id type', () => {
|
||||
it('should sanitize incoming IDs if ID type is number', async () => {
|
||||
const created = await restClient
|
||||
.POST(`/posts`, {
|
||||
body: JSON.stringify({
|
||||
title: 'post to test that ID comes in as proper type',
|
||||
}),
|
||||
headers: {
|
||||
Authorization: `Bearer ${token}`,
|
||||
},
|
||||
})
|
||||
.then((res) => res.json())
|
||||
|
||||
const { doc: updated } = await restClient
|
||||
.PATCH(`/posts/${created.doc.id}`, {
|
||||
body: JSON.stringify({
|
||||
title: 'hello',
|
||||
}),
|
||||
headers: {
|
||||
Authorization: `Bearer ${token}`,
|
||||
},
|
||||
})
|
||||
.then((res) => res.json())
|
||||
|
||||
expect(updated.id).toStrictEqual(created.doc.id)
|
||||
})
|
||||
})
|
||||
|
||||
describe('migrations', () => {
|
||||
beforeAll(async () => {
|
||||
if (process.env.PAYLOAD_DROP_DATABASE === 'true' && 'drizzle' in payload.db) {
|
||||
@@ -188,34 +216,6 @@ describe('database', () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe('id type', () => {
|
||||
it('should sanitize incoming IDs if ID type is number', async () => {
|
||||
const { doc } = await restClient
|
||||
.POST(`/posts`, {
|
||||
body: JSON.stringify({
|
||||
title: 'post to test that ID comes in as proper type',
|
||||
}),
|
||||
headers: {
|
||||
Authorization: `Bearer ${token}`,
|
||||
},
|
||||
})
|
||||
.then((res) => res.json())
|
||||
|
||||
const { doc: updated } = await restClient
|
||||
.PATCH(`/posts/${doc.id}`, {
|
||||
body: JSON.stringify({
|
||||
title: 'hello',
|
||||
}),
|
||||
headers: {
|
||||
Authorization: `Bearer ${token}`,
|
||||
},
|
||||
})
|
||||
.then((res) => res.json())
|
||||
|
||||
expect(updated.id).toStrictEqual(doc.id)
|
||||
})
|
||||
})
|
||||
|
||||
describe('transactions', () => {
|
||||
describe('local api', () => {
|
||||
it('should commit multiple operations in isolation', async () => {
|
||||
|
||||
Reference in New Issue
Block a user