From 939922cae41f90718d0a3b5de3606ae34d24f337 Mon Sep 17 00:00:00 2001 From: josedario87 <71241187+josedario87@users.noreply.github.com> Date: Tue, 10 Jun 2025 00:21:39 -0600 Subject: [PATCH] Sort index views by id --- ui/src/views/asistencias/AsistenciasIndex.vue | 5 ++++- .../views/asistencias/__tests__/AsistenciasIndex.spec.js | 8 +++++--- ui/src/views/empleados/EmpleadosIndex.vue | 5 ++++- ui/src/views/empleados/__tests__/EmpleadosIndex.spec.js | 8 +++++--- ui/src/views/planillas/PlanillasIndex.vue | 6 ++++-- ui/src/views/planillas/__tests__/PlanillasIndex.spec.js | 8 +++++--- ui/src/views/tareas/TareasIndex.vue | 5 ++++- ui/src/views/tareas/__tests__/TareasIndex.spec.js | 8 +++++--- 8 files changed, 36 insertions(+), 17 deletions(-) diff --git a/ui/src/views/asistencias/AsistenciasIndex.vue b/ui/src/views/asistencias/AsistenciasIndex.vue index 7da4e5f..e52077f 100644 --- a/ui/src/views/asistencias/AsistenciasIndex.vue +++ b/ui/src/views/asistencias/AsistenciasIndex.vue @@ -86,7 +86,10 @@ const errorMessage = ref(''); // Initialize currentView from the store's default setting for asistencias const currentView = ref(ui.defaultViewAsistencias); -const asistenciasList = computed(() => asistenciasStore.asistencias); +// Show asistencias ordered by id descending +const asistenciasList = computed(() => + [...(asistenciasStore.asistencias || [])].sort((a, b) => b.id - a.id) +); onMounted(async () => { try { diff --git a/ui/src/views/asistencias/__tests__/AsistenciasIndex.spec.js b/ui/src/views/asistencias/__tests__/AsistenciasIndex.spec.js index b04b9fa..f84e884 100644 --- a/ui/src/views/asistencias/__tests__/AsistenciasIndex.spec.js +++ b/ui/src/views/asistencias/__tests__/AsistenciasIndex.spec.js @@ -85,7 +85,8 @@ describe('AsistenciasIndex.vue', () => { expect(wrapper.findComponent({ name: 'TablaAsistencias' }).exists()).toBe(true) - expect(wrapper.findComponent({ name: 'TablaAsistencias' }).props('asistencias')).toEqual(asistenciasStoreMock.asistencias) + const expected = [...asistenciasStoreMock.asistencias].sort((a, b) => b.id - a.id) + expect(wrapper.findComponent({ name: 'TablaAsistencias' }).props('asistencias')).toEqual(expected) expect(wrapper.findComponent({ name: 'CardAsistencia' }).exists()).toBe(false) }) @@ -99,8 +100,9 @@ describe('AsistenciasIndex.vue', () => { await wrapper.vm.$nextTick() const cardWrappers = wrapper.findAllComponents({ name: 'CardAsistencia' }) - expect(cardWrappers.length).toBe(asistenciasStoreMock.asistencias.length) - expect(cardWrappers[0].props('asistencia')).toEqual(asistenciasStoreMock.asistencias[0]) + const expected = [...asistenciasStoreMock.asistencias].sort((a, b) => b.id - a.id) + expect(cardWrappers.length).toBe(expected.length) + expect(cardWrappers[0].props('asistencia')).toEqual(expected[0]) expect(wrapper.findComponent({ name: 'TablaAsistencias' }).exists()).toBe(false) }) diff --git a/ui/src/views/empleados/EmpleadosIndex.vue b/ui/src/views/empleados/EmpleadosIndex.vue index 4aea471..7da9151 100644 --- a/ui/src/views/empleados/EmpleadosIndex.vue +++ b/ui/src/views/empleados/EmpleadosIndex.vue @@ -87,7 +87,10 @@ const empleadosStore = useEmpleadosStore(); const { empleados } = storeToRefs(empleadosStore); // alias para plantilla -const employees = empleados; +// Sort employees by id descending for display +const employees = computed(() => + [...(empleados?.value || [])].sort((a, b) => b.id - a.id) +); // --- helpers --- // Removed btnClass as manual toggle buttons are removed diff --git a/ui/src/views/empleados/__tests__/EmpleadosIndex.spec.js b/ui/src/views/empleados/__tests__/EmpleadosIndex.spec.js index 496134a..787df79 100644 --- a/ui/src/views/empleados/__tests__/EmpleadosIndex.spec.js +++ b/ui/src/views/empleados/__tests__/EmpleadosIndex.spec.js @@ -91,7 +91,8 @@ describe('EmpleadosIndex.vue', () => { await wrapper.vm.$nextTick() // Wait for any reactivity updates expect(wrapper.findComponent({ name: 'TablaEmpleados' }).exists()).toBe(true) - expect(wrapper.findComponent({ name: 'TablaEmpleados' }).props('employees')).toEqual(empleadosStoreMock.empleados) + const expected = [...empleadosStoreMock.empleados].sort((a, b) => b.id - a.id) + expect(wrapper.findComponent({ name: 'TablaEmpleados' }).props('employees')).toEqual(expected) expect(wrapper.findComponent({ name: 'CardEmpleado' }).exists()).toBe(false) }) @@ -103,8 +104,9 @@ describe('EmpleadosIndex.vue', () => { await wrapper.vm.$nextTick() const cardWrappers = wrapper.findAllComponents({ name: 'CardEmpleado' }) - expect(cardWrappers.length).toBe(empleadosStoreMock.empleados.length) - expect(cardWrappers[0].props('employee')).toEqual(empleadosStoreMock.empleados[0]) + const expected = [...empleadosStoreMock.empleados].sort((a, b) => b.id - a.id) + expect(cardWrappers.length).toBe(expected.length) + expect(cardWrappers[0].props('employee')).toEqual(expected[0]) expect(wrapper.findComponent({ name: 'TablaEmpleados' }).exists()).toBe(false) }) diff --git a/ui/src/views/planillas/PlanillasIndex.vue b/ui/src/views/planillas/PlanillasIndex.vue index 9e76a88..7180b16 100644 --- a/ui/src/views/planillas/PlanillasIndex.vue +++ b/ui/src/views/planillas/PlanillasIndex.vue @@ -86,8 +86,10 @@ const errorMessage = ref(''); // Initialize currentView from the store's default setting for planillas const currentView = ref(ui.defaultViewPlanillas); -// Computed property to get planillas from the store -const planillasList = computed(() => planillasStore.planillas); +// Computed property sorted by id descending +const planillasList = computed(() => + [...(planillasStore.planillas || [])].sort((a, b) => b.id - a.id) +); // Fetch planillas when the component is mounted onMounted(async () => { diff --git a/ui/src/views/planillas/__tests__/PlanillasIndex.spec.js b/ui/src/views/planillas/__tests__/PlanillasIndex.spec.js index b168fbb..8a30bf2 100644 --- a/ui/src/views/planillas/__tests__/PlanillasIndex.spec.js +++ b/ui/src/views/planillas/__tests__/PlanillasIndex.spec.js @@ -80,7 +80,8 @@ describe('PlanillasIndex.vue', () => { await wrapper.vm.$nextTick() // Additional tick if loading state causes multiple updates expect(wrapper.findComponent({ name: 'TablaPlanillas' }).exists()).toBe(true) - expect(wrapper.findComponent({ name: 'TablaPlanillas' }).props('planillas')).toEqual(planillasStoreMock.planillas) + const expected = [...planillasStoreMock.planillas].sort((a, b) => b.id - a.id) + expect(wrapper.findComponent({ name: 'TablaPlanillas' }).props('planillas')).toEqual(expected) expect(wrapper.findComponent({ name: 'CardPlanilla' }).exists()).toBe(false) }) @@ -94,8 +95,9 @@ describe('PlanillasIndex.vue', () => { await wrapper.vm.$nextTick() const cardWrappers = wrapper.findAllComponents({ name: 'CardPlanilla' }) - expect(cardWrappers.length).toBe(planillasStoreMock.planillas.length) - expect(cardWrappers[0].props('planilla')).toEqual(planillasStoreMock.planillas[0]) + const expected = [...planillasStoreMock.planillas].sort((a, b) => b.id - a.id) + expect(cardWrappers.length).toBe(expected.length) + expect(cardWrappers[0].props('planilla')).toEqual(expected[0]) expect(wrapper.findComponent({ name: 'TablaPlanillas' }).exists()).toBe(false) }) diff --git a/ui/src/views/tareas/TareasIndex.vue b/ui/src/views/tareas/TareasIndex.vue index 4ec5d98..c438979 100644 --- a/ui/src/views/tareas/TareasIndex.vue +++ b/ui/src/views/tareas/TareasIndex.vue @@ -86,7 +86,10 @@ const errorMessage = ref(''); // Initialize currentView from the store's default setting for tareas const currentView = ref(ui.defaultViewTareas); -const tareasList = computed(() => tareasStore.tareas); +// Display tareas sorted by id descending +const tareasList = computed(() => + [...(tareasStore.tareas || [])].sort((a, b) => b.id - a.id) +); onMounted(async () => { try { diff --git a/ui/src/views/tareas/__tests__/TareasIndex.spec.js b/ui/src/views/tareas/__tests__/TareasIndex.spec.js index 2ec8820..74cbfba 100644 --- a/ui/src/views/tareas/__tests__/TareasIndex.spec.js +++ b/ui/src/views/tareas/__tests__/TareasIndex.spec.js @@ -80,7 +80,8 @@ describe('TareasIndex.vue', () => { await wrapper.vm.$nextTick() expect(wrapper.findComponent({ name: 'TablaTareas' }).exists()).toBe(true) - expect(wrapper.findComponent({ name: 'TablaTareas' }).props('tareas')).toEqual(tareasStoreMock.tareas) + const expected = [...tareasStoreMock.tareas].sort((a, b) => b.id - a.id) + expect(wrapper.findComponent({ name: 'TablaTareas' }).props('tareas')).toEqual(expected) expect(wrapper.findComponent({ name: 'CardTarea' }).exists()).toBe(false) }) @@ -94,8 +95,9 @@ describe('TareasIndex.vue', () => { await wrapper.vm.$nextTick() const cardWrappers = wrapper.findAllComponents({ name: 'CardTarea' }) - expect(cardWrappers.length).toBe(tareasStoreMock.tareas.length) - expect(cardWrappers[0].props('tarea')).toEqual(tareasStoreMock.tareas[0]) + const expected = [...tareasStoreMock.tareas].sort((a, b) => b.id - a.id) + expect(cardWrappers.length).toBe(expected.length) + expect(cardWrappers[0].props('tarea')).toEqual(expected[0]) expect(wrapper.findComponent({ name: 'TablaTareas' }).exists()).toBe(false) })