Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 26 additions & 8 deletions src/tests/Counter.test.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,40 @@
// import necessary react testing library helpers here
// import the Counter component here
// Import necessary React Testing Library helpers
import { render, screen, fireEvent } from '@testing-library/react';
// Import the Counter component from components folder
import Counter from '../components/Counter';

// Render the Counter component before each test
beforeEach(() => {
// Render the Counter component here
})
render(<Counter />);
});

// Test to check if the counter component renders correctly
test('renders counter message', () => {
// Complete the unit test below based on the objective in the line above
const counterHeading = screen.getByRole('heading', { name: /counter/i });
expect(counterHeading).toBeInTheDocument();
});

// Test to check if the initial count value is 0
test('should render initial count with value of 0', () => {
// Complete the unit test below based on the objective in the line above
const countValue = screen.getByTestId('count');
expect(countValue).toHaveTextContent('0');
});

// Test to check if clicking the "+" button increments the count
test('clicking + increments the count', () => {
// Complete the unit test below based on the objective in the line above
const incrementButton = screen.getByRole('button', { name: '+' });
fireEvent.click(incrementButton);
const countValue = screen.getByTestId('count');
expect(countValue).toHaveTextContent('1');
});

// Test to check if clicking the "-" button decrements the count
test('clicking - decrements the count', () => {
// Complete the unit test below based on the objective in the line above
// First, increment the count to ensure decrement has an effect
const incrementButton = screen.getByRole('button', { name: '+' });
fireEvent.click(incrementButton); // Count is now 1
const decrementButton = screen.getByRole('button', { name: '-' });
fireEvent.click(decrementButton); // Expected to decrement the count back to 0
const countValue = screen.getByTestId('count');
expect(countValue).toHaveTextContent('0');
});