Skip to content

Commit

Permalink
Merge pull request #151 from Arquisoft/gameCategories
Browse files Browse the repository at this point in the history
Pruebas en el componente Categorias y ModeSelection
  • Loading branch information
uo287998 authored Apr 22, 2024
2 parents 2b146cd + 13ec3a0 commit c4980a7
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
37 changes: 37 additions & 0 deletions webapp/src/components/categories/categories.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import React from 'react';
import { render, fireEvent, screen } from '@testing-library/react';
import Categorias from './categories';

describe('Categorias', () => {
// Limpiar todos los elementos de localStorage antes de cada prueba
beforeEach(() => {
localStorage.clear();
});

it('debería renderizar todas las categorías', () => {
render(<Categorias />);
const categorias = ['Aleatorio', 'Geografia', 'Deporte', 'Politica', 'Cultura'];

categorias.forEach(categoria => {
expect(screen.getByText(categoria)).toBeInTheDocument();
});
});

it('debería seleccionar una categoría al hacer clic en ella', () => {
render(<Categorias />);
const button = screen.getByText('Deporte');

fireEvent.click(button);

expect(button.className).toContain('selected');
expect(localStorage.getItem('categoria')).toBe('deporte');
});

it('debería seleccionar la categoría guardada en localStorage al renderizar', () => {
localStorage.setItem('categoria', 'politica');
render(<Categorias />);
const button = screen.getByText('Politica');

expect(button.className).toContain('selected');
});
});
41 changes: 41 additions & 0 deletions webapp/src/components/gameModes/ModeSelection.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import React from 'react';
import { render, fireEvent, screen, waitFor } from '@testing-library/react';
import ModeSelection from './ModeSelection';

jest.mock('../categories/categories', () => () => <div>Categorias</div>);

describe('ModeSelection', () => {
// Limpiar todos los elementos de localStorage antes de cada prueba
beforeEach(() => {
localStorage.clear();
});

it('debería renderizar todos los modos', () => {
render(<ModeSelection />);
const modos = ['Batería de sabios', 'Descartando', 'Descubriendo ciudades', 'Solo imagenes'];

modos.forEach(modo => {
expect(screen.getByText(modo)).toBeInTheDocument();
});
});

it('debería seleccionar un modo al hacer clic en él', async () => {
render(<ModeSelection />);
const button = screen.getByText('Descartando');

fireEvent.click(button);

await waitFor(() => expect(button.className).toContain('selected'));

expect(localStorage.getItem('mode')).toBe('descartando');
});

it('debería mostrar el componente Categorias cuando se selecciona el modo "Batería de sabios"', () => {
render(<ModeSelection />);
const button = screen.getByText('Batería de sabios');

fireEvent.click(button);

expect(screen.getByText('Categorias')).toBeInTheDocument();
});
});

0 comments on commit c4980a7

Please sign in to comment.