Skip to content

fix(weex): corrige falso negativo cuando el ServiceLayer falla - #10

Open
pachedev wants to merge 1 commit into
moraxh:mainfrom
pachedev:fix/weex-business-error
Open

fix(weex): corrige falso negativo cuando el ServiceLayer falla#10
pachedev wants to merge 1 commit into
moraxh:mainfrom
pachedev:fix/weex-business-error

Conversation

@pachedev

Copy link
Copy Markdown

Weex responde 200 con un sobre { obj, error: { code, message, retry } } y su propio portal trata cualquier code distinto de 0 como fallo del servicio, no como resultado vacío. El código leía
obj.dnActiveByCurpRfc.length === 0 sin mirar error.code, así que una consulta que nunca llegó a ocurrir se le mostraba al usuario como "no tienes líneas registradas a tu nombre". Es el espejo del falso positivo que corrigió 6429f02 en Sorcel, sólo que en la dirección contraria.

Además obj.dnActiveByCurpRfc se accedía sin guardas, y en esos mismos errores el sobre viene sin obj: lanza TypeError y tumba el provider entero.

Ahora se comprueba error.code antes de interpretar el arreglo, se lee obj con optional chaining para que un sobre inesperado no lance, y 403/429 pasan a temporaryUnavailable, que es lo que ya usan otros providers para distinguir un bloqueo de un fallo real del operador.

Verificado ejecutando el código anterior y el nuevo sobre las mismas respuestas. Con líneas y sin líneas se comportan igual, así que no hay regresión en los caminos normales. Con error de negocio y el arreglo vacío el anterior decía "sin registro" y el nuevo marca no disponible; con el sobre sin obj el anterior lanzaba TypeError.

Weex responde 200 con un sobre { obj, error: { code, message, retry } } y
su propio portal trata cualquier code distinto de 0 como fallo del
servicio, no como resultado vacío. El código leía
obj.dnActiveByCurpRfc.length === 0 sin mirar error.code, así que una
consulta que nunca llegó a ocurrir se le mostraba al usuario como "no
tienes líneas registradas a tu nombre". Es el espejo del falso positivo
que corrigió 6429f02 en Sorcel, sólo que en la dirección contraria.

Además obj.dnActiveByCurpRfc se accedía sin guardas, y en esos mismos
errores el sobre viene sin obj: lanza TypeError y tumba el provider
entero.

Ahora se comprueba error.code antes de interpretar el arreglo, se lee obj
con optional chaining para que un sobre inesperado no lance, y 403/429
pasan a temporaryUnavailable, que es lo que ya usan otros providers para
distinguir un bloqueo de un fallo real del operador.

Verificado ejecutando el código anterior y el nuevo sobre las mismas
respuestas. Con líneas y sin líneas se comportan igual, así que no hay
regresión en los caminos normales. Con error de negocio y el arreglo
vacío el anterior decía "sin registro" y el nuevo marca no disponible;
con el sobre sin obj el anterior lanzaba TypeError.
@vercel

vercel Bot commented Aug 31, 2026

Copy link
Copy Markdown

@pachedev is attempting to deploy a commit to the JMora Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant