Skip to content

Commit 1cfab1b

Browse files
authored
Merge pull request #77 from Arquisoft/50-realizar-pruebas-unitarias
Corrección de errores para el despliegue
2 parents 24a781e + f3d3f3b commit 1cfab1b

File tree

11 files changed

+52
-27
lines changed

11 files changed

+52
-27
lines changed

.github/workflows/release.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -170,4 +170,4 @@ jobs:
170170
wget https://raw.githubusercontent.com/arquisoft/wiq_es1a/master/docker-compose.yml -O docker-compose.yml
171171
wget https://raw.githubusercontent.com/arquisoft/wiq_es1a/master/.env -O .env
172172
docker compose --profile prod down
173-
docker compose --profile prod up -d
173+
docker compose --profile prod up -d --pull always

webapp/src/components/CustomModal/CustomModal.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const CustomModal = ({ title, text, route }) => {
1616
<ModalContent>
1717
<ModalHeader>{title}</ModalHeader>
1818
<ModalCloseButton />
19-
<ModalBody>
19+
<ModalBody textAlign='justify'>
2020
{text}
2121
</ModalBody>
2222

webapp/src/components/Nav/Nav.js

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const Nav = () => {
88
const isDarkTheme = colorMode === "dark";
99
const textColor = isDarkTheme ? "white" : "teal.500";
1010
const bgColor = isDarkTheme ? 'gray.700' : 'gray.200';
11+
1112
const handleConfig = () => {
1213
navigate("/config");
1314
};

webapp/src/pages/Bateria/Bateria.js

+11-3
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,23 @@ const JuegoPreguntas = () => {
5959
const tMedio=TIME/preguntasTotales;
6060
setTiempoMedio(tMedio);
6161
}
62-
if (juegoTerminado && tiempoMedio!=0) {
63-
guardarPartida();
64-
}
6562
}
6663
const timer = setInterval(() => {
6764
setTiempoRestante((prevTiempo) => (prevTiempo <= 0 ? 0 : prevTiempo - 1));
6865
}, 1000);
6966
return () => clearInterval(timer);
67+
// eslint-disable-next-line
7068
}, [tiempoRestante]);
7169

70+
useEffect(() => {
71+
if (juegoTerminado && tiempoMedio!=0) {
72+
guardarPartida();
73+
}
74+
// eslint-disable-next-line
75+
}, [juegoTerminado, tiempoMedio]);
76+
77+
78+
7279
const guardarPartida = async () => {
7380

7481
const username = localStorage.getItem("username");
@@ -105,6 +112,7 @@ const JuegoPreguntas = () => {
105112
}, 10);
106113

107114
return () => clearInterval(timer);
115+
// eslint-disable-next-line
108116
}, [tiempoRestante]);
109117

110118
const handleSiguientePregunta = async (respuesta) => {

webapp/src/pages/Clasico/Clasico.js

+14-11
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import React, { useState, useEffect, useMemo } from "react";
1+
import React, { useState, useEffect } from "react";
22
import Nav from "../../components/Nav/Nav.js";
33
import { Link, useNavigate } from "react-router-dom";
44
import Footer from "../../components/Footer/Footer.js";
5-
import { Box, Flex, Heading, Button, Grid, useColorMode, Text, Image } from "@chakra-ui/react";
5+
import { Box, Flex, Heading, Button, Grid, useColorMode, Text, Image, Spinner } from "@chakra-ui/react";
66
import axios from "axios";
77

88
const JuegoPreguntas = () => {
99
const URL = process.env.REACT_APP_API_ENDPOINT || "http://localhost:8000";
10-
const SECS_PER_QUESTION = useMemo(() => localStorage.getItem("clasicoTime"));
10+
const SECS_PER_QUESTION = localStorage.getItem("clasicoTime");
1111
const { colorMode } = useColorMode();
1212
const isDarkTheme = colorMode === "dark";
1313

@@ -54,7 +54,6 @@ const JuegoPreguntas = () => {
5454
setIsLoading(false);
5555
})
5656
.catch((error) => {
57-
console.error("Error al obtener las preguntas:", error);
5857
navigate("/home?error=1");
5958
});
6059
// eslint-disable-next-line
@@ -140,20 +139,18 @@ const JuegoPreguntas = () => {
140139
setJuegoTerminado(true);
141140
if (preguntasCorrectas + preguntasFalladas > 0) {
142141
const preguntasTotales=preguntasCorrectas+preguntasFalladas;
143-
console.log(preguntasCorrectas);
144-
console.log(preguntasFalladas);
145142
const tMedio=tiempoTotal/preguntasTotales;
146143
setTiempoMedio(tMedio);
147-
console.log(tMedio);
148144
}
149145
}
150146

151147
};
152148

153149
useEffect(() => {
154-
if (juegoTerminado && tiempoMedio!=0) {
150+
if (juegoTerminado && tiempoMedio !== 0) {
155151
guardarPartida();
156152
}
153+
// eslint-disable-next-line
157154
}, [juegoTerminado]);
158155

159156
const guardarPartida = async () => {
@@ -202,7 +199,15 @@ const JuegoPreguntas = () => {
202199
return (
203200
<>
204201
<Nav />
205-
<span class="loader"></span>
202+
<Spinner
203+
data-testid="spinner"
204+
thickness='4px'
205+
speed='0.65s'
206+
emptyColor='gray.200'
207+
color='teal.500'
208+
size='xl'
209+
margin='auto'
210+
/>
206211
<Footer />
207212
</>
208213
);
@@ -255,9 +260,7 @@ const JuegoPreguntas = () => {
255260
<Button
256261
onClick={() => {
257262
const newTTotal=tiempoTotal+(SECS_PER_QUESTION-tiempoRestante);
258-
console.log(newTTotal);
259263
setTiempoTotal(newTTotal);
260-
console.log(tiempoTotal);
261264
setTiempoRestante(0)}}
262265
disabled={tiempoRestante === 0 || juegoTerminado}
263266
colorScheme="teal"

webapp/src/pages/Config/Config.js

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const Config = () => {
2929
checkbox.click();
3030
}
3131
});
32+
// eslint-disable-next-line
3233
}, []);
3334
const navigate = useNavigate();
3435

webapp/src/pages/Home/Home.js

+14-5
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,13 @@ import Nav from "../../components/Nav/Nav.js";
33
import Footer from "../../components/Footer/Footer.js";
44
import CustomModal from "../../components/CustomModal/CustomModal.js";
55
import { Box, Heading, Flex } from "@chakra-ui/react";
6+
import { useLocation } from "react-router-dom";
67

78
const Home = () => {
9+
const location = useLocation();
10+
const queryParams = new URLSearchParams(location.search);
11+
const error = queryParams.get("error");
12+
813
return (
914
<>
1015
<Nav />
@@ -16,13 +21,13 @@ const Home = () => {
1621
Elige el modo de juego
1722
</Heading>
1823
<Box p={2}>
19-
<CustomModal
20-
title="Modo Clásico"
24+
<CustomModal
25+
title="Modo Clásico"
2126
text="
2227
En el modo Clásico, tendrás que responder un número determinado de preguntas en un tiempo limitado.
2328
¡Demuestra tus conocimientos y rapidez para superar este desafío!
24-
"
25-
route="/home/clasico"
29+
"
30+
route="/home/clasico"
2631
/>
2732
</Box>
2833
<Box p={2}>
@@ -35,7 +40,11 @@ const Home = () => {
3540
route="/home/bateria"
3641
/>
3742
</Box>
38-
{/* Agrega más modos de juego aquí */}
43+
{error && (
44+
<Box mb={4} color="red">
45+
Hubo un error al cargar las preguntas. Por favor, inténtalo más tarde.
46+
</Box>
47+
)}
3948
</Flex>
4049
<Footer />
4150
</>

webapp/src/pages/Perfil/Perfil.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import { Box, VStack, Heading, Text, Center, Spinner, Table, Thead, Tbody, Tr, T
22
import React, { useEffect, useState } from "react";
33
import Nav from "../../components/Nav/Nav.js";
44
import Footer from "../../components/Footer/Footer.js";
5-
import axios from "axios";
65

76
const Perfil = () => {
87
const gatewayUrl = process.env.GATEWAY_SERVICE_URL || "http://localhost:8000";
8+
const username = localStorage.username || 'error';
99
const [userData, setUserData] = useState(null);
1010
const [loading, setLoading] = useState(true);
11-
const [username,setUsername]=useState(localStorage.username || 'error');
11+
1212
const [error, setError] = useState(null);
1313

1414
useEffect(() => {
@@ -23,6 +23,7 @@ const Perfil = () => {
2323
setError(error.message || 'Ha ocurrido un error al obtener el perfil');
2424
setLoading(false);
2525
});
26+
// eslint-disable-next-line
2627
}, []);
2728

2829
return (
@@ -73,7 +74,7 @@ const Perfil = () => {
7374
<Td>{game.correctAnswers}</Td>
7475
<Td>{game.incorrectAnswers}</Td>
7576
<Td>{game.points}</Td>
76-
<Td>{game.avgTime} segundos</Td>
77+
<Td>{parseFloat(game.avgTime).toFixed(2)} segundos</Td>
7778
</Tr>
7879
))}
7980
</Tbody>

webapp/src/pages/Ranking/Ranking.js

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ const Ranking = () => {
4545

4646
useEffect(() => {
4747
fetchRanking();
48+
// eslint-disable-next-line
4849
}, [gamemode, filterBy]);
4950

5051
const handleDisplayChange = (event) => {

webapp/src/pages/Sobre/Sobre.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from "react";
2-
import { Flex, Table, Thead, Tbody, Tr, Th, Td, Link, Center, Heading } from "@chakra-ui/react";
2+
import { Flex, Table, Thead, Tbody, Tr, Th, Td, Link, Heading } from "@chakra-ui/react";
33
import Nav from '../../components/Nav/Nav.js';
44
import Footer from '../../components/Footer/Footer.js';
55

webapp/src/pages/Stats/Stats.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ const Stats = () => {
4545
fetchStats();
4646
setFetched(true);
4747
}
48+
// eslint-disable-next-line
4849
}, [username, gamemode]);
4950

5051
const handleUsernameChange = (event) => {
@@ -62,9 +63,9 @@ const Stats = () => {
6263
};
6364

6465
const getModeName = () => {
65-
if (gamemode == "clasico") {
66+
if (gamemode === "clasico") {
6667
return "Clásico";
67-
} else if (gamemode == "bateria") {
68+
} else if (gamemode === "bateria") {
6869
return "Batería de sabios";
6970
}
7071
return gamemode;

0 commit comments

Comments
 (0)