Skip to content

Instantly share code, notes, and snippets.

@git2thehub
Created February 7, 2024 15:32
Show Gist options
  • Save git2thehub/08604f99a2fcd30e6e7a6350e489544e to your computer and use it in GitHub Desktop.
Save git2thehub/08604f99a2fcd30e6e7a6350e489544e to your computer and use it in GitHub Desktop.
All Tests 1 - 8
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import App from '../App';
// Test 1: Write a test that checks to see if our `App` component renders without throwing an error.
it('App Component Renders Without Error', () => {
render(<App />);
});
// Test 2: Write a test that checks if the button within the `App` component renders properly.
it('App Component Renders a Button', () => {
render(<App />);
const button = screen.getByRole('button', { name: 'increment counter' });
expect(button).toBeDefined();
});
// Test 3: Write a test which checks if the counter starts at 0.
it('Counter Starts At 0', () => {
render(<App />);
const count = screen.getByText('0');
expect(count).toBeDefined();
});
// Test 4: Write a test which checks if the increment button increases the count.
it('Clicking Increment Button Increases Counter Display', async () => {
render(<App />);
await userEvent.click(
screen.getByRole('button', { name: 'increment counter' })
);
const count = screen.getByText('1');
expect(count).toBeDefined();
});
// Test 5: Write a test which checks to see if the counter display renders properly.
it("App Component Renders the Counter Display", () => {
render(<App />);
const count = screen.getByText('0');
expect(count).toBeDefined();
});
// Test 6: Write a test for a decrement button
it('App Component Renders a Decrement Button', async () => {
render(<App />);
await userEvent.click(
screen.getByRole('button', { name: 'decrement counter' })
);
const count = screen.getByText('0');
expect(count).toBeDefined();
});
// Test 7: Write a test which will not allow the counter to go below 0 and display an error message
it('Count is Unable to go Below Zero and Throws Error', async () => {
render(<App />);
await userEvent.click(
screen.getByRole('button', { name: 'decrement counter' })
);
const errorHeading = screen.getByRole('heading', { level: 2 });
expect(errorHeading.textContent).toBe('The counter can not go below zero');
});
// Test 8: Clear the error message on Increment
it('Decrement Error Message Clears When Count Increment Higher than 0', async () => {
render(<App />);
await userEvent.click(
screen.getByRole('button', { name: 'increment counter' })
);
const errorHeading = screen.getByRole('heading', { level: 2 });
expect(errorHeading.textContent).toBe('');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment