import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { container } from 'tsyringe';
import App from './App';
const context = describe;
describe('App', () => {
function renderApp() {
return render(<App />);
}
beforeEach(() => {
container.clearInstances();
});
it('render correctly', () => {
renderApp();
expect(screen.getByText('Getting Started'));
});
context('when increase button is clicked', () => {
it('count is incremented by 1', async () => {
renderApp();
const increaseBtn = screen.getByRole('button', { name: 'Increase' });
await userEvent.click(increaseBtn);
await userEvent.click(increaseBtn);
expect(screen.getAllByText(/counter: 2/).length).toBe(2);
});
});
context('when decrease button is clicked', () => {
it('count is decrease by 1', async () => {
renderApp();
const decreaseBtn = screen.getByRole('button', { name: 'Decrease' });
await userEvent.click(decreaseBtn);
await userEvent.click(decreaseBtn);
expect(screen.getAllByText(/counter: -2/).length).toBe(2);
});
});
});