Compare commits
3 Commits
5649abdf0a
...
1989c608e5
| Author | SHA1 | Date | |
|---|---|---|---|
| 1989c608e5 | |||
| e9296af0dc | |||
| bbba9e707d |
13
.eslintrc.js
13
.eslintrc.js
@@ -22,9 +22,16 @@ module.exports = {
|
|||||||
// Se ignoran para que `npm run lint` pase sin reformatear archivos
|
// Se ignoran para que `npm run lint` pase sin reformatear archivos
|
||||||
// pre-existentes. Los archivos nuevos de esta tarea se mantienen
|
// pre-existentes. Los archivos nuevos de esta tarea se mantienen
|
||||||
// lint-eados. Revisar cuando se unifique el estilo del proyecto.
|
// lint-eados. Revisar cuando se unifique el estilo del proyecto.
|
||||||
'src/**',
|
//
|
||||||
'!src/components/order/**',
|
// Los patrones matchean archivos y no directorios: si se ignorara un
|
||||||
|
// directorio (`src/**`), el walker de ESLint no descendería y las
|
||||||
|
// negaciones anidadas nunca se evaluarían.
|
||||||
|
'src/**/*.vue',
|
||||||
|
'src/**/*.js',
|
||||||
'!src/components/PublicOrderSummary.vue',
|
'!src/components/PublicOrderSummary.vue',
|
||||||
'!src/pages/pedido/**',
|
'!src/components/order/*.vue',
|
||||||
|
'!src/components/order/**/*.vue',
|
||||||
|
'!src/pages/pedido/*.vue',
|
||||||
|
'!src/pages/pedido/**/*.vue',
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ No hay un estilo mayoritario. El código histórico está partido:
|
|||||||
- `/don_confiao/api/customers/` - Clientes
|
- `/don_confiao/api/customers/` - Clientes
|
||||||
- `/don_confiao/api/products/` - Productos
|
- `/don_confiao/api/products/` - Productos
|
||||||
- `/don_confiao/api/sales/` - Ventas
|
- `/don_confiao/api/sales/` - Ventas
|
||||||
- `/don_confiao/api/resumen_publico/<code>` - Resumen público de pedido por código (AllowAny)
|
- `/don_confiao/resumen_publico/<code>` - Resumen público de pedido por código (AllowAny, SIN `api/`)
|
||||||
|
|
||||||
## Consulta Pública de Pedidos
|
## Consulta Pública de Pedidos
|
||||||
- Ruta `/pedido/:code?` (pública, sin `requiresAuth`)
|
- Ruta `/pedido/:code?` (pública, sin `requiresAuth`)
|
||||||
|
|||||||
@@ -100,7 +100,7 @@
|
|||||||
{ title: 'Inicio', route: '/', icon: 'mdi-home'},
|
{ title: 'Inicio', route: '/', icon: 'mdi-home'},
|
||||||
{ title: 'Comprar', route:'/comprar', icon: 'mdi-cart'},
|
{ title: 'Comprar', route:'/comprar', icon: 'mdi-cart'},
|
||||||
{ title: 'Ver Catálogo', route: '/catalog', icon: 'mdi-store'},
|
{ title: 'Ver Catálogo', route: '/catalog', icon: 'mdi-store'},
|
||||||
{ title: 'Consultar mi pedido', route: '/pedido', icon: 'mdi-magnify-scan'},
|
{ title: 'Consultar mi pedido o compra', route: '/pedido', icon: 'mdi-magnify-scan'},
|
||||||
],
|
],
|
||||||
menuAdminItems: [
|
menuAdminItems: [
|
||||||
{ title: 'Cuadrar tarro', route: '/cuadrar_tarro', icon: 'mdi-calculator'},
|
{ title: 'Cuadrar tarro', route: '/cuadrar_tarro', icon: 'mdi-calculator'},
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<v-icon color="primary" size="36">mdi-receipt-text-outline</v-icon>
|
<v-icon color="primary" size="36">mdi-receipt-text-outline</v-icon>
|
||||||
</template>
|
</template>
|
||||||
<v-card-title class="font-weight-bold text-h6">
|
<v-card-title class="font-weight-bold text-h6">
|
||||||
Resumen del pedido
|
{{ purchase.type === 'catalog' ? 'Resumen del pedido' : 'Resumen de la compra' }}
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
</v-card-item>
|
</v-card-item>
|
||||||
<v-divider />
|
<v-divider />
|
||||||
|
|||||||
@@ -129,7 +129,7 @@
|
|||||||
variant="elevated"
|
variant="elevated"
|
||||||
class="px-8"
|
class="px-8"
|
||||||
>
|
>
|
||||||
Consultar mi pedido
|
Consultar mi pedido o compra
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</div>
|
</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<template #prepend>
|
<template #prepend>
|
||||||
<v-icon>mdi-tag</v-icon>
|
<v-icon>mdi-tag</v-icon>
|
||||||
</template>
|
</template>
|
||||||
<v-list-item-title>Código del pedido</v-list-item-title>
|
<v-list-item-title>Código</v-list-item-title>
|
||||||
<v-list-item-subtitle>
|
<v-list-item-subtitle>
|
||||||
<code class="order-code">{{ code }}</code>
|
<code class="order-code">{{ code }}</code>
|
||||||
</v-list-item-subtitle>
|
</v-list-item-subtitle>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-container class="pa-4 pa-md-6" fluid>
|
<v-container class="pa-4 pa-md-6" fluid>
|
||||||
<v-sheet class="rounded-lg pa-4 pa-md-6 mb-4">
|
<v-sheet class="rounded-lg pa-4 pa-md-6 mb-4">
|
||||||
<h1 class="text-h5 font-weight-bold">Consultar mi pedido</h1>
|
<h1 class="text-h5 font-weight-bold">Consultar mi pedido o compra</h1>
|
||||||
<p class="text-body-2 text-medium-emphasis mb-4">
|
<p class="text-body-2 text-medium-emphasis mb-4">
|
||||||
Ingresa el código de tu pedido o abre el link que recibiste para revisar su estado.
|
Ingresa el código de tu pedido o compra, o abre el link que recibiste para revisar su estado.
|
||||||
</p>
|
</p>
|
||||||
<v-form @submit.prevent="onConsult">
|
<v-form @submit.prevent="onConsult">
|
||||||
<v-row align="center">
|
<v-row align="center">
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
clearable
|
clearable
|
||||||
density="comfortable"
|
density="comfortable"
|
||||||
hide-details
|
hide-details
|
||||||
label="Código del pedido"
|
label="Código"
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
@@ -59,7 +59,7 @@ class DjangoApi {
|
|||||||
|
|
||||||
getPublicOrderSummary(code) {
|
getPublicOrderSummary(code) {
|
||||||
const url =
|
const url =
|
||||||
this.base + `/don_confiao/api/resumen_publico/${code}`;
|
this.base + `/don_confiao/resumen_publico/${code}`;
|
||||||
return this.getRequest(url);
|
return this.getRequest(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ describe('PublicOrderSummary', () => {
|
|||||||
expect(wrapper.findComponent(OrderLines).exists()).toBe(true)
|
expect(wrapper.findComponent(OrderLines).exists()).toBe(true)
|
||||||
expect(wrapper.findComponent(OrderTotal).exists()).toBe(true)
|
expect(wrapper.findComponent(OrderTotal).exists()).toBe(true)
|
||||||
expect(wrapper.findComponent(OrderPayment).exists()).toBe(true)
|
expect(wrapper.findComponent(OrderPayment).exists()).toBe(true)
|
||||||
|
expect(wrapper.text()).toContain('Resumen de la compra')
|
||||||
expect(wrapper.text()).toContain('Camilo')
|
expect(wrapper.text()).toContain('Camilo')
|
||||||
expect(wrapper.text()).toContain('Panela')
|
expect(wrapper.text()).toContain('Panela')
|
||||||
expect(wrapper.text()).toContain('Arroz')
|
expect(wrapper.text()).toContain('Arroz')
|
||||||
@@ -60,6 +61,7 @@ describe('PublicOrderSummary', () => {
|
|||||||
expect(wrapper.findComponent(OrderLines).exists()).toBe(true)
|
expect(wrapper.findComponent(OrderLines).exists()).toBe(true)
|
||||||
expect(wrapper.findComponent(OrderTotal).exists()).toBe(true)
|
expect(wrapper.findComponent(OrderTotal).exists()).toBe(true)
|
||||||
expect(wrapper.findComponent(OrderPayment).exists()).toBe(false)
|
expect(wrapper.findComponent(OrderPayment).exists()).toBe(false)
|
||||||
|
expect(wrapper.text()).toContain('Resumen del pedido')
|
||||||
expect(wrapper.text()).toContain('Camilo')
|
expect(wrapper.text()).toContain('Camilo')
|
||||||
expect(wrapper.text()).toContain('Panela')
|
expect(wrapper.text()).toContain('Panela')
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||||
import { flushPromises, mount } from '@vue/test-utils'
|
import { flushPromises, mount } from '@vue/test-utils'
|
||||||
import { createMemoryHistory, createRouter } from 'vue-router'
|
import { createMemoryHistory, createRouter } from 'vue-router'
|
||||||
import PedidoPage from '@/pages/pedido/[code].vue'
|
import PedidoPage from '@/pages/pedido/[[code]].vue'
|
||||||
import PublicOrderSummary from '@/components/PublicOrderSummary.vue'
|
import PublicOrderSummary from '@/components/PublicOrderSummary.vue'
|
||||||
import vuetify from '@/plugins/vuetify'
|
import vuetify from '@/plugins/vuetify'
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ describe('página pública /pedido', () => {
|
|||||||
await flushPromises()
|
await flushPromises()
|
||||||
|
|
||||||
expect(api.getPublicOrderSummary).not.toHaveBeenCalled()
|
expect(api.getPublicOrderSummary).not.toHaveBeenCalled()
|
||||||
expect(wrapper.text()).toContain('Código del pedido')
|
expect(wrapper.text()).toContain('Código')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('con código por URL consulta y muestra el resumen', async () => {
|
it('con código por URL consulta y muestra el resumen', async () => {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ describe('DjangoApi.getPublicOrderSummary', () => {
|
|||||||
|
|
||||||
expect(http.get).toHaveBeenCalledTimes(1)
|
expect(http.get).toHaveBeenCalledTimes(1)
|
||||||
expect(http.get).toHaveBeenCalledWith(
|
expect(http.get).toHaveBeenCalledWith(
|
||||||
'http://backend.test/don_confiao/api/resumen_publico/abc123'
|
'http://backend.test/don_confiao/resumen_publico/abc123'
|
||||||
)
|
)
|
||||||
expect(result).toEqual({ code: 'abc123', type: 'sale' })
|
expect(result).toEqual({ code: 'abc123', type: 'sale' })
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user