Skip to content

Commit

Permalink
lint: se arregla formateo y warnings del linter
Browse files Browse the repository at this point in the history
  • Loading branch information
ramirezsebas committed Feb 3, 2024
1 parent 91c88da commit 896dc14
Show file tree
Hide file tree
Showing 3 changed files with 164 additions and 160 deletions.
218 changes: 109 additions & 109 deletions src/contribuyentes.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,67 +33,67 @@ const { CustomError } = require("./errors");
* }
*/
async function getContribuyenteBySearch(search, offset = 0) {
if (
!search ||
if (
!search ||
search.trim() === "" ||
search.length < MIN_LENGTH ||
search.length > MAX_LENGTH
) {
throw new CustomError(
`El parámetro search es inválido. Debe tener entre ${MIN_LENGTH} y ${MAX_LENGTH} caracteres.`
);
}

if (offset < 0 || isNaN(offset)) {
throw new CustomError(
"El parámetro offset es inválido. Debe ser un número mayor o igual a 0."
);
}

try {
const response = await fetch(
`${URL}/search?search=${encodeURIComponent(search)}&page=${offset}`
);

const contribuyentesJsonResponse = await response.json();

if (response.status !== 200) {
if (response.status === 404) {
throw new CustomError(
"No se encontraron resultados.",
contribuyentesJsonResponse?.message || ""
);
}

if (response.status > 400 && response.status < 500) {
throw new CustomError(
`El parámetro search es inválido. Debe tener entre ${MIN_LENGTH} y ${MAX_LENGTH} caracteres.`,
contribuyentesJsonResponse?.message || ""
);
}

throw new CustomError(
"Ocurrió un error al consultar la API. Por favor, intente nuevamente o Contacta con los desarrolladores.",
contribuyentesJsonResponse?.message || ""
);
}

const contribuyentes = contribuyentesJsonResponse.data?.contribuyentes;

if (contribuyentes?.length === 0) {
throw new CustomError(
"No se encontraron resultados.",
contribuyentesJsonResponse?.message || ""
);
}

return contribuyentes;
} catch (error) {
throw new CustomError(
"Ocurrió un error al consultar la API. Por favor, intente nuevamente o Contacta con los desarrolladores.",
error?.message || error?.toString() || ""
);
}
) {
throw new CustomError(
`El parámetro search es inválido. Debe tener entre ${MIN_LENGTH} y ${MAX_LENGTH} caracteres.`
);
}

if (offset < 0 || isNaN(offset)) {
throw new CustomError(
"El parámetro offset es inválido. Debe ser un número mayor o igual a 0."
);
}

try {
const response = await fetch(
`${URL}/search?search=${encodeURIComponent(search)}&page=${offset}`
);

const contribuyentesJsonResponse = await response.json();

if (response.status !== 200) {
if (response.status === 404) {
throw new CustomError(
"No se encontraron resultados.",
contribuyentesJsonResponse?.message || ""
);
}

if (response.status > 400 && response.status < 500) {
throw new CustomError(
`El parámetro search es inválido. Debe tener entre ${MIN_LENGTH} y ${MAX_LENGTH} caracteres.`,
contribuyentesJsonResponse?.message || ""
);
}

throw new CustomError(
"Ocurrió un error al consultar la API. Por favor, intente nuevamente o Contacta con los desarrolladores.",
contribuyentesJsonResponse?.message || ""
);
}

const contribuyentes = contribuyentesJsonResponse.data?.contribuyentes;

if (contribuyentes?.length === 0) {
throw new CustomError(
"No se encontraron resultados.",
contribuyentesJsonResponse?.message || ""
);
}

return contribuyentes;
} catch (error) {
throw new CustomError(
"Ocurrió un error al consultar la API. Por favor, intente nuevamente o Contacta con los desarrolladores.",
error?.message || error?.toString() || ""
);
}
}

/**
Expand Down Expand Up @@ -125,58 +125,58 @@ async function getContribuyenteBySearch(search, offset = 0) {
* }
*/
async function getContribuyenteByRucOrCI(ruc) {
const regex = new RegExp("^\\d{1,8}(?:-\\d+)?$");
if (!ruc || ruc.trim() === "" || !regex.test(ruc)) {
throw new CustomError(
"El parámetro ruc es inválido. Debe tener formato 123456-1 (^\d{1,8}(?:-\d)?$)."
);
}

try {
const response = await fetch(`${URL}/${ruc}`);

const contribuyenteJsonResponse = await response.json();

if (response.status !== 200) {
if (response.status === 404) {
throw new CustomError(
"No se encontraron resultados.",
contribuyenteJsonResponse?.message || ""
);
}

if (response.status > 400 && response.status < 500) {
throw new CustomError(
"El parámetro ruc es inválido. Debe tener formato 12345 o 123456-1",
contribuyenteJsonResponse?.message || ""
);
}

throw new CustomError(
"Ocurrió un error al consultar la API. Por favor, intente nuevamente o Contacta con los desarrolladores.",
contribuyenteJsonResponse?.message || ""
);
}

const contribuyente = contribuyenteJsonResponse.data;

if (!contribuyente) {
throw new CustomError(
"No se encontraron resultados.",
contribuyenteJsonResponse?.message || ""
);
}

return contribuyente;
} catch (error) {
throw new CustomError(
"Ocurrió un error al consultar la API. Por favor, intente nuevamente o Contacta con los desarrolladores.",
error?.message || error?.toString() || ""
);
}
const regex = new RegExp("^\\d{1,8}(?:-\\d+)?$");
if (!ruc || ruc.trim() === "" || !regex.test(ruc)) {
throw new CustomError(
"El parámetro ruc es inválido. Debe tener formato 123456-1 o 123456"
);
}

try {
const response = await fetch(`${URL}/${ruc}`);

const contribuyenteJsonResponse = await response.json();

if (response.status !== 200) {
if (response.status === 404) {
throw new CustomError(
"No se encontraron resultados.",
contribuyenteJsonResponse?.message || ""
);
}

if (response.status > 400 && response.status < 500) {
throw new CustomError(
"El parámetro ruc es inválido. Debe tener formato 12345 o 123456-1",
contribuyenteJsonResponse?.message || ""
);
}

throw new CustomError(
"Ocurrió un error al consultar la API. Por favor, intente nuevamente o Contacta con los desarrolladores.",
contribuyenteJsonResponse?.message || ""
);
}

const contribuyente = contribuyenteJsonResponse.data;

if (!contribuyente) {
throw new CustomError(
"No se encontraron resultados.",
contribuyenteJsonResponse?.message || ""
);
}

return contribuyente;
} catch (error) {
throw new CustomError(
"Ocurrió un error al consultar la API. Por favor, intente nuevamente o Contacta con los desarrolladores.",
error?.message || error?.toString() || ""
);
}
}

module.exports = {
getContribuyenteBySearch,
getContribuyenteByRucOrCI,
getContribuyenteBySearch,
getContribuyenteByRucOrCI,
};
8 changes: 4 additions & 4 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
const {
getContribuyenteBySearch,
getContribuyenteByRucOrCI,
getContribuyenteBySearch,
getContribuyenteByRucOrCI,
} = require("./contribuyentes");

module.exports = {
getContribuyenteBySearch,
getContribuyenteByRucOrCI,
getContribuyenteBySearch,
getContribuyenteByRucOrCI,
};
98 changes: 51 additions & 47 deletions tests/contribuyentes.test.js
Original file line number Diff line number Diff line change
@@ -1,55 +1,59 @@
const { getContribuyenteBySearch } = require("../src/contribuyentes");

const { describe, test, expect } = require("@jest/globals");

describe("Contribuyentes", () => {
describe("getContribuyenteBySearch", () => {
test("deberia tirar un error si pasamos un string vacio como parametro", async () => {
try {
await getContribuyenteBySearch("");
} catch (error) {
expect(error.message).toBe(
"El parámetro search es inválido. Debe tener entre 3 y 50 caracteres."
);
}
});
describe("getContribuyenteBySearch", () => {
test("deberia tirar un error si pasamos un string vacio como parametro", async () => {
try {
await getContribuyenteBySearch("");
} catch (error) {
expect(error.message).toBe(
"El parámetro search es inválido. Debe tener entre 3 y 50 caracteres."
);
}
});

test("deberia tirar un error si pasamos un string con menos de 3 caracteres como parametro", async () => {
try {
await getContribuyenteBySearch("1");
} catch (error) {
expect(error.message).toBe(
"El parámetro search es inválido. Debe tener entre 3 y 50 caracteres."
);
}
});
test("deberia tirar un error si pasamos un string con menos de 3 caracteres como parametro", async () => {
try {
await getContribuyenteBySearch("1");
} catch (error) {
expect(error.message).toBe(
"El parámetro search es inválido. Debe tener entre 3 y 50 caracteres."
);
}
});

test("deberia tirar un error si pasamos un string con mas de 50 caracteres como parametro", async () => {
try {
await getContribuyenteBySearch("Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez");
} catch (error) {
expect(error.message).toBe(
"El parámetro search es inválido. Debe tener entre 3 y 50 caracteres."
);
}
});
test("deberia tirar un error si pasamos un string con mas de 50 caracteres como parametro", async () => {
try {
await getContribuyenteBySearch(
"Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez Juan Perez"
);
} catch (error) {
expect(error.message).toBe(
"El parámetro search es inválido. Debe tener entre 3 y 50 caracteres."
);
}
});

test("deberia tirar un error si pasamos un offset negativo como parametro", async () => {
try {
await getContribuyenteBySearch("123", -1);
} catch (error) {
expect(error.message).toBe(
"El parámetro offset es inválido. Debe ser un número mayor o igual a 0."
);
}
});
test("deberia tirar un error si pasamos un offset negativo como parametro", async () => {
try {
await getContribuyenteBySearch("123", -1);
} catch (error) {
expect(error.message).toBe(
"El parámetro offset es inválido. Debe ser un número mayor o igual a 0."
);
}
});

test("deberia tirar un error si pasamos un offset que no es un numero como parametro", async () => {
try {
await getContribuyenteBySearch("123", "a");
} catch (error) {
expect(error.message).toBe(
"El parámetro offset es inválido. Debe ser un número mayor o igual a 0."
);
}
});
});
test("deberia tirar un error si pasamos un offset que no es un numero como parametro", async () => {
try {
await getContribuyenteBySearch("123", "a");
} catch (error) {
expect(error.message).toBe(
"El parámetro offset es inválido. Debe ser un número mayor o igual a 0."
);
}
});
});
});

0 comments on commit 896dc14

Please sign in to comment.