fix(front) : correctifs ecran categories + alignement boutons admin (ERP-117)
- Drawer categories : titre stable « Modifier la categorie » (plus de bascule view/edit selon l'etat dirty), bouton Enregistrer toujours actif et PATCH du payload complet (save a tout moment, meme sans modification) - Champ « Types de categorie » : suppression du label « Selectionner un ou plusieurs types » - Categories : ordre boutons Filtres avant Ajouter + gap reduit (gap-8) - Boutons d'ajout admin (categories, roles, sites) passes en variant secondary - Boutons Filtres (categories, audit-log, clients) en tertiary simple : suppression des surcharges de classe, icone a gauche 24px - Tests useCategoryForm mis a jour (PATCH payload complet)
This commit is contained in:
@@ -346,7 +346,7 @@ describe('useCategoryForm', () => {
|
||||
})
|
||||
|
||||
describe('submitUpdate', () => {
|
||||
it('appelle PATCH /categories/{id} uniquement avec les champs modifies', async () => {
|
||||
it('appelle PATCH /categories/{id} avec le payload complet (name + categoryTypes)', async () => {
|
||||
mockPatch.mockResolvedValueOnce({ ...CAT, name: 'Vis V2' })
|
||||
const form = useCategoryForm()
|
||||
form.loadFrom(CAT)
|
||||
@@ -354,9 +354,11 @@ describe('useCategoryForm', () => {
|
||||
|
||||
await form.submitUpdate(42)
|
||||
|
||||
// Payload complet : meme si seul le name change, on renvoie aussi
|
||||
// les categoryTypes (PATCH full payload, cf. drawers simples).
|
||||
expect(mockPatch).toHaveBeenCalledWith(
|
||||
'/categories/42',
|
||||
{ name: 'Vis V2' }, // pas de categoryTypes car non modifies
|
||||
{ name: 'Vis V2', categoryTypes: ['/api/category_types/1'] },
|
||||
{ toast: false },
|
||||
)
|
||||
})
|
||||
@@ -371,20 +373,25 @@ describe('useCategoryForm', () => {
|
||||
|
||||
expect(mockPatch).toHaveBeenCalledWith(
|
||||
'/categories/42',
|
||||
{ categoryTypes: ['/api/category_types/1', '/api/category_types/2'] },
|
||||
{ name: CAT.name, categoryTypes: ['/api/category_types/1', '/api/category_types/2'] },
|
||||
{ toast: false },
|
||||
)
|
||||
})
|
||||
|
||||
it('court-circuite l appel API si aucun champ n a change', async () => {
|
||||
it('envoie un PATCH complet meme sans modification (save a tout moment)', async () => {
|
||||
mockPatch.mockResolvedValueOnce(CAT)
|
||||
const form = useCategoryForm()
|
||||
form.loadFrom(CAT)
|
||||
// Aucune modification — isDirty=false, patch payload vide.
|
||||
// Aucune modification : le PATCH part quand meme avec le payload complet.
|
||||
|
||||
const result = await form.submitUpdate(42)
|
||||
|
||||
expect(mockPatch).not.toHaveBeenCalled()
|
||||
expect(result).toBeNull()
|
||||
expect(mockPatch).toHaveBeenCalledWith(
|
||||
'/categories/42',
|
||||
{ name: CAT.name, categoryTypes: ['/api/category_types/1'] },
|
||||
{ toast: false },
|
||||
)
|
||||
expect(result).toEqual(CAT)
|
||||
expect(form.submitting.value).toBe(false)
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user