# QA Módulo Servicios

Pruebas funcionales del módulo Servicios (`/services-settings`). Referencia de comportamiento: FAQs (`/faqs-settings`).

## Pruebas funcionales

### Tabla de servicios (Áreas de Actuación)

| Caso | Comportamiento esperado | Referencia |
|------|-------------------------|------------|
| Selección de filas | Al marcar uno o más checkboxes (o "seleccionar todo"), debe mostrarse la barra de acciones con el contador y el botón **Eliminar** | FAQs: mismo patrón |
| Borrado múltiple | Botón "Eliminar" visible al tener al menos un ítem seleccionado; al confirmar, se llama a `POST /services-settings/destroy-multiple` con `ids` y se recarga la tabla | FAQs: `destroy-multiple` |
| Mobile y desktop | La barra de selección (contador + Eliminar) debe verse tanto en vista móvil como en desktop | Toolbars duplicados en la vista (mobile + desktop) |

### Tabla de categorías

| Caso | Comportamiento esperado |
|------|-------------------------|
| Selección y borrado múltiple | Mismo patrón que la tabla de servicios; toolbars para "base" y "selected" en mobile y desktop. |

---

## Correcciones aplicadas (QA)

### Borrado múltiple no visible (23 Feb 2026)

**Problema:** En `/services-settings`, al seleccionar servicios con los checkboxes, no aparecía la opción de borrado múltiple (barra con "X seleccionados" y botón "Eliminar").

**Causa:** La vista tiene **dos bloques de toolbar** (mobile y desktop). El JS solo hacía `querySelector` del primer elemento con `[data-kt-services-table-toolbar="base"]` y `[data-kt-services-table-toolbar="selected"]`, que corresponden al bloque **mobile**. En desktop ese bloque está oculto (`d-md-none`), por lo que el toolbar de "selected" nunca se mostraba.

**Solución:** En `resources/assets/extended/js/custom/services/servicesTable.js`:

- Usar `querySelectorAll` para **todos** los toolbars `base` y `selected`, y alternar la clase `d-none` en cada uno.
- Actualizar **ambos** contadores: `#kt_services_table_select_all_count` (mobile) y `#kt_services_table_select_all_count_desktop` (desktop).

**Después de editar el JS:** compilar assets para que los cambios se reflejen en `public/demo1`:

```bash
npm run dev
# o, en producción:
npm run production
```

---

## Rutas y controladores relevantes

- **Listado (AJAX):** `GET /services-settings/get-services`
- **Borrado múltiple:** `POST /services-settings/destroy-multiple` (body: `{ ids: number[] }`)
- **Controlador:** `App\Modules\Services\Controllers\Admin\ServiceController::destroyMultiple`
