Skip to content

Commit

Permalink
Merge pull request #425 from Arquisoft/dev
Browse files Browse the repository at this point in the history
Actualizaciones
  • Loading branch information
uo285427 authored Apr 30, 2024
2 parents 61f3651 + 12451af commit f1a0dfe
Show file tree
Hide file tree
Showing 9 changed files with 44 additions and 12 deletions.
2 changes: 1 addition & 1 deletion docs/src/08_concepts.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ image::08-DominioV4.png["Dominio"]
==== Desarrollo

* *Implementación:* Para la creación de esta aplicación se usará el lenguaje de programación JavaScript, para el front-end se utilizará React, Node.js y la construccion de microservicios para el back-end y MongoDB para la gestion de la base de datos NoSQL.
* *Pruebas:* Se llevarán a cabo pruebas e2e y unitarias, de integración, de aceptación, de capacidad/rendimiento y de regresión, todas ellas siguiendo los principios FIRST(Fast, Independent, Repeatable, Self-Checking y Timely) para garantizar la ejecución correcta de todas las funcionalidades de la aplicación.
* *Pruebas:* Se llevarán a cabo pruebas e2e, de carga y unitarias todas ellas siguiendo los principios FIRST(Fast, Independent, Repeatable, Self-Checking y Timely) para garantizar la ejecución correcta de todas las funcionalidades de la aplicación.


==== Estilo arquitecónico
Expand Down
35 changes: 35 additions & 0 deletions docs/src/12_testing.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
ifndef::imagesdir[:imagesdir: ../images]

[[section-glossary]]
== Testing
Se llevarán a cabo pruebas unitarias, E2E y de carga para garantizar la ejecución correcta de todas las funcionalidades de la aplicación.

=== Tests Unitarios

En nuestro proyecto, los tests unitarios son fundamentales para garantizar la correcta funcionalidad de cada componente del código. Cada función, método o clase será probado exhaustivamente para asegurar su integridad y rendimiento.

Para lograr esto, seguimos los principios FIRST:

|===
|Principio | Descripción

|Fast (Rápido)
|Los tests unitarios se ejecutan rápidamente, proporcionando retroalimentación inmediata sobre la integridad del código.

|Independent (Independiente)
|Cada test es independiente de los demás, evitando dependencias y permitiendo su ejecución en cualquier orden.

|Repeatable (Repetible)
|Los resultados de los tests son consistentes y predecibles, independientemente de cuántas veces se ejecuten o del entorno de ejecución.

|Self-Checking (Autoverificable)
|Los tests determinan automáticamente si han pasado o fallado, sin necesidad de intervención humana para su validación.

|Timely (Oportuno)
|La creación y ampliación de tests se realiza durante todo el desarrollo del proyecto, garantizando una cobertura adecuada en todo momento.
|===

=== E2E. Tests de integración
uscaremos garantizar que la aplicación sea fácil de usar para proporcionar una experiencia satisfactoria al usuario. Nos centraremos en verificar diversas funcionalidades, desde la jugabilidad hasta acciones como el registro, inicio de sesión y cambios en los ajustes. Simularemos interacciones que haría un usuario real para asegurar que la aplicación sea intuitiva y funcione correctamente.

=== Tests de carga
File renamed without changes.
6 changes: 2 additions & 4 deletions gatewayservice/gateway-service.js
Original file line number Diff line number Diff line change
Expand Up @@ -112,13 +112,11 @@ app.get('/getAllGeneratedQuestions', async (req, res) => {

app.get('/getRecords/:userId', async (req, res) => {
try {

const userId = req.params.userId;

const userId = encodeURIComponent(req.params.userId);
const recordsResponse = await axios.get(`${recordServiceUrl}/getRecords/${userId}`);
res.json(recordsResponse.data);
} catch (error) {
res.status(500).json({ error: 'Error interno del servidor' });
res.status(500).json({ error: 'Error interno del servidor' });
}
});

Expand Down
3 changes: 2 additions & 1 deletion questions/generatedquestservice/generatedquest-service.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@ mongoose.connect(mongoUri);
const doesQuestionExist = async (questionBody) => {
//devuelve true si la pregunta ya existe
try {
const safeQuestionBody = questionBody.toString();
const existingQuestion = await GeneratedQuestion.findOne({
generatedQuestionBody: { $eq: questionBody }
generatedQuestionBody: safeQuestionBody
});

return !!existingQuestion; // Convertir el resultado en un booleano
Expand Down
4 changes: 2 additions & 2 deletions webapp/src/components/Game.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ const Game = ({ username, totalQuestions, timeLimit, themes }) => {
const [error, setError] = useState('');
const [correctQuestions, setCorrectQuestions] = useState(0);
const [timer, setTimer] = useState(0);
const [themesSelected, setThemesSelected] = useState(themes);
const [themesSelected] = useState(themes);
const [numberClics, setNumberClics] = useState(0);
const [finished, setFinished] = useState(false);
const [selectedAnswer, setSelectedAnswer] = useState('');
const [setSelectedAnswer] = useState('');
const [selectedOption, setSelectedOption] = useState(null); // Opción seleccionada actualmente
const [almacenado, setAlmacenado] = useState(false);
const pricePerQuestion = 25;
Expand Down
2 changes: 1 addition & 1 deletion webapp/src/components/RankingList.test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { render, screen, waitFor, act } from '@testing-library/react';
import { render, screen, act } from '@testing-library/react';
import RankingList from './RankingList';
import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
Expand Down
2 changes: 0 additions & 2 deletions webapp/src/components/UsersList.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ import React, { useState, useEffect } from 'react';
import axios from 'axios';
import PropTypes from 'prop-types';

//import { Container, Typography, TextField, Button, Snackbar } from '@mui/material';

const UsersList = ({ setError }) => {

const [listUsers, setListUsers] = useState([]);
Expand Down
2 changes: 1 addition & 1 deletion webapp/src/components/UsersList.test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { render, waitFor, screen, act } from '@testing-library/react';
import { render, screen, act } from '@testing-library/react';
import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
import UsersList from './UsersList';
Expand Down

0 comments on commit f1a0dfe

Please sign in to comment.