fix: valider data.user/data.artistes avant déréférencement

This commit is contained in:
2026-07-04 11:38:02 +04:00
parent c4f45f712a
commit 6f77c17003
6 changed files with 64 additions and 0 deletions
@@ -66,4 +66,26 @@ describe('parole.create', () => {
expect(paroleDocuments.create).toHaveBeenCalled()
})
it('refuse sans planter quand data.user est absent', async () => {
const {strapi, userDocuments} = buildStrapi({dbUser, artiste})
const controller = createController({strapi})
const ctx = buildCtx(buildData({user: undefined}))
await controller.create(ctx)
expect(ctx.badRequest).toHaveBeenCalled()
expect(userDocuments.findOne).not.toHaveBeenCalled()
})
it('refuse sans planter quand data.artistes est vide', async () => {
const {strapi, artisteDocuments} = buildStrapi({dbUser, artiste})
const controller = createController({strapi})
const ctx = buildCtx(buildData({artistes: []}))
await controller.create(ctx)
expect(ctx.badRequest).toHaveBeenCalled()
expect(artisteDocuments.findOne).not.toHaveBeenCalled()
})
})
+5
View File
@@ -69,6 +69,11 @@ module.exports = createCoreController('api::parole.parole', ({strapi}) => ({
async create(ctx) {
const {body} = ctx.request
const {data} = body
if (!data?.user?.documentId || !data?.artistes?.[0]?.documentId) {
return ctx.badRequest('Informations manquantes.')
}
strapi.service('api::parole.parole').validateParoles(data.titre, data.transcription)
const user = await strapi.documents('plugin::users-permissions.user').findOne({