From 4ee7ed3e5e0f88befbbd4d469c99b5d4cb8f8026 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20FAMIBELLE-PRONZOLA?= Date: Sat, 4 Jul 2026 14:58:43 +0400 Subject: [PATCH] fix: corriger la signature de parole.findOne (ctx au lieu de documentId) --- .../controllers/__tests__/parole.test.js | 25 +++++++++++++++++++ src/api/parole/controllers/parole.js | 3 ++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/api/parole/controllers/__tests__/parole.test.js b/src/api/parole/controllers/__tests__/parole.test.js index e333ce1..75b7f09 100644 --- a/src/api/parole/controllers/__tests__/parole.test.js +++ b/src/api/parole/controllers/__tests__/parole.test.js @@ -56,6 +56,31 @@ function buildData(overrides = {}) { } } +describe('parole.findOne', () => { + it('interroge avec le documentId venant de ctx.params.id, pas avec ctx lui-même', async () => { + const paroleDocuments = { + findOne: vi.fn(async ({documentId}) => ({id: 1, documentId, titre: 'Test'})) + } + const strapi = { + contentType: vi.fn(() => ({uid: 'api::parole.parole', kind: 'collectionType'})), + documents: vi.fn(uid => { + if (uid === 'api::parole.parole') return paroleDocuments + throw new Error(`unexpected uid: ${uid}`) + }) + } + const controller = createController({strapi}) + const ctx = {params: {id: 'doc-123'}} + + const result = await controller.findOne(ctx) + + expect(paroleDocuments.findOne).toHaveBeenCalledWith({ + documentId: 'doc-123', + populate: ['artistes'] + }) + expect(result).toEqual({id: 1, documentId: 'doc-123', titre: 'Test'}) + }) +}) + describe('parole.create', () => { it('crée la parole quand le user et l\'artiste existent', async () => { const {strapi, paroleDocuments} = buildStrapi({dbUser, artiste}) diff --git a/src/api/parole/controllers/parole.js b/src/api/parole/controllers/parole.js index eb24efb..bc3a1cd 100644 --- a/src/api/parole/controllers/parole.js +++ b/src/api/parole/controllers/parole.js @@ -44,7 +44,8 @@ module.exports = createCoreController('api::parole.parole', ({strapi}) => ({ return ctx.send(result) }, - async findOne(documentId) { + async findOne(ctx) { + const {id: documentId} = ctx.params const parole = await strapi.documents('api::parole.parole').findOne({ documentId, populate: ['artistes']