From 3d08539aa4a19f88c5852e981099d03030f04f3e Mon Sep 17 00:00:00 2001 From: jaimeeg5 Date: Sat, 5 Sep 2026 13:45:40 +0200 Subject: [PATCH] fix: resolve SonarCloud issues in index, components, componentsCard, and ImageService --- .../pcmod/service/ImageService.java | 2 +- .../pcmod/e2e/ui/ComponentsSystemTests.java | 25 +++++++++++++++++++ frontend/app/components/componentCard.tsx | 6 +---- frontend/app/routes/components.tsx | 7 +++++- frontend/app/routes/index.tsx | 9 +++---- 5 files changed, 36 insertions(+), 13 deletions(-) diff --git a/backend/pcmod/src/main/java/es/codeurjcstudents/pcmod/service/ImageService.java b/backend/pcmod/src/main/java/es/codeurjcstudents/pcmod/service/ImageService.java index 2113a9d..fd1b931 100644 --- a/backend/pcmod/src/main/java/es/codeurjcstudents/pcmod/service/ImageService.java +++ b/backend/pcmod/src/main/java/es/codeurjcstudents/pcmod/service/ImageService.java @@ -17,7 +17,7 @@ @Service public class ImageService { - private static final long MAX_SIZE = 10 * 1024 * 1024; // 10MB + private static final long MAX_SIZE = 10L * 1024L * 1024L; // 10MB private static final List ALLOWED_TYPES = List.of("image/jpeg", "image/png", "image/webp"); private final ImageRepository imageRepository; diff --git a/backend/pcmod/src/test/java/es/codeurjcstudents/pcmod/e2e/ui/ComponentsSystemTests.java b/backend/pcmod/src/test/java/es/codeurjcstudents/pcmod/e2e/ui/ComponentsSystemTests.java index e1be7e2..0f77ef7 100644 --- a/backend/pcmod/src/test/java/es/codeurjcstudents/pcmod/e2e/ui/ComponentsSystemTests.java +++ b/backend/pcmod/src/test/java/es/codeurjcstudents/pcmod/e2e/ui/ComponentsSystemTests.java @@ -3,6 +3,7 @@ import static org.assertj.core.api.Assertions.assertThat; import java.time.Duration; +import java.util.Map; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.AfterEach; @@ -65,4 +66,28 @@ public void loadComponentsTest() throws InterruptedException { assertThat(driver.findElements(By.name("loadMore"))).isEmpty(); } + + @Test + public void loadErrorTest() { + + driver.get("http://localhost:5173/components"); + + wait.until(ExpectedConditions.presenceOfElementLocated(By.name("loadMore"))); + WebElement loadMoreButton = driver.findElement(By.name("loadMore")); + + // Simulate a network error + ((ChromeDriver) driver).executeCdpCommand("Network.enable", Map.of()); + ((ChromeDriver) driver).executeCdpCommand("Network.emulateNetworkConditions", Map.of( + "offline", true, + "latency", 0, + "downloadThroughput", 0, + "uploadThroughput", 0)); + + loadMoreButton.click(); + + wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("[role='alert']"))); + String errorMessage = driver.findElement(By.cssSelector("[role='alert']")).getText(); + assertThat(errorMessage).isEqualTo("Hubo un problema al cargar más componentes. Por favor, pruebe de nuevo."); + + } } \ No newline at end of file diff --git a/frontend/app/components/componentCard.tsx b/frontend/app/components/componentCard.tsx index fa39411..449b2c3 100644 --- a/frontend/app/components/componentCard.tsx +++ b/frontend/app/components/componentCard.tsx @@ -2,11 +2,7 @@ import { Link } from "react-router"; import { Image as ImageIcon } from "react-bootstrap-icons"; import type ComponentDTO from "~/dtos/ComponentDTO"; -interface ComponentCardProps { - component: ComponentDTO; -} - -export default function ComponentCard({ component }: ComponentCardProps) { +export default function ComponentCard({ component }: Readonly<{ component: ComponentDTO }>) { return (
diff --git a/frontend/app/routes/components.tsx b/frontend/app/routes/components.tsx index bc3089e..877929e 100644 --- a/frontend/app/routes/components.tsx +++ b/frontend/app/routes/components.tsx @@ -61,7 +61,7 @@ export default function Components({ loaderData }: Route.ComponentProps) {

{component.name}

Marca: {component.brand} | Tipo: {component.type} | Precio: {component.price} € | Stock: {component.stock} ud.

{component.description}

-
+
)) )} @@ -74,6 +74,11 @@ export default function Components({ loaderData }: Route.ComponentProps) { )} )} + {loadMoreError && ( +

+ Hubo un problema al cargar más componentes. Por favor, pruebe de nuevo. +

+ )}
diff --git a/frontend/app/routes/index.tsx b/frontend/app/routes/index.tsx index c158c29..5c5eafc 100644 --- a/frontend/app/routes/index.tsx +++ b/frontend/app/routes/index.tsx @@ -30,23 +30,20 @@ export default function Index({ loaderData }: Route.ComponentProps) {

Bienvenido a PCMod

- PCMod es una plataforma de compra online de componentes de ordenador. En nuestra tienda podrás encontrar una amplia selección de productos para montar tu nuevo PC o actualizar el que ya tienes. + PCMod es una plataforma de compra online de componentes de ordenador. En nuestra tienda podrá encontrar una amplia selección de productos para montar su nuevo PC o actualizar el que ya tiene.

Buscamos ofrecer la mejor experiencia para nuestros clientes, y, por ello, ofrecemos un servicio de compra sencillo y eficiente. Nuestros clientes cuentan con un servicio de confirmación de operaciones por correo electrónico, un sistema de pago seguro y un asistente potenciado por IA.

- Si tienes cualquier duda, no dudes en ponerte en contacto con nosotros: - - .... - + Si tiene cualquier duda, no dude en ponerse en contacto con nosotros:{' '}....

-

Descubre nuestras últimas novedades:

+

Descubra nuestras últimas novedades:

{recentComponents.length > 0 ? (