Skip to content

Instantly share code, notes, and snippets.

@LukasTsunami
Created October 25, 2023 12:16
Show Gist options
  • Save LukasTsunami/0445bd72f21dae7ee0126831185d07ca to your computer and use it in GitHub Desktop.
Save LukasTsunami/0445bd72f21dae7ee0126831185d07ca to your computer and use it in GitHub Desktop.
PortaMisteriosa.test.jsx
import { render, screen, fireEvent } from '@testing-library/react';
import PortaMisteriosa from './PortaMisteriosa';
describe('quando carregar o componente', () => {
test('deve mostrar a porta e o botão de abrir porta', () => {
render(<PortaMisteriosa />);
expect(screen.getByText(/Você vê uma porta/i)).toBeInTheDocument();
expect(screen.getByText(/Abrir Porta/i)).toBeInTheDocument();
});
})
test('deve poder abrir a PortaMisteriosa e ver monstro hora sim, hora não', () => {
render(<PortaMisteriosa qualMonstroEh="Abominável Homem das Neves" />);
const botao_abre = screen.getByTestId('botao-abre-porta-misteriosa')
const botao_fecha = screen.getByTestId('botao-fecha-porta-misteriosa')
fireEvent.click(botao_abre)
expect(screen.getByText(/Porta Misteriosa aberta/i)).toBeInTheDocument();
expect(screen.getByText(/Monstro Abominável Homem das Neves apareceu!/i)).toBeInTheDocument();
fireEvent.click(botao_fecha)
expect(screen.getByText(/Porta Misteriosa fechada/i)).toBeInTheDocument();
fireEvent.click(botao_abre)
expect(screen.getByText(/Nada à vista!/i)).toBeInTheDocument();
fireEvent.click(botao_fecha)
expect(screen.getByText(/Porta Misteriosa fechada/i)).toBeInTheDocument();
fireEvent.click(botao_abre)
expect(screen.getByText(/Porta Misteriosa aberta/i)).toBeInTheDocument();
expect(screen.getByText(/Monstro Abominável Homem das Neves apareceu!/i)).toBeInTheDocument();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment