import React from 'react';
import { fireEvent, render, screen } from '../../../../../../tests/test-utils';
import { UpdateModal } from './UpdateModal';
describe('UpdateModal', () => {
const app = { name: 'My App' };
const newVersion = '1.2.3';
it('renders with the correct title and version number', () => {
// Arrange
render();
// Assert
expect(screen.getByText(`Update ${app.name} ?`)).toBeInTheDocument();
expect(screen.getByText(`${newVersion}`)).toBeInTheDocument();
});
it('should not render when isOpen is false', () => {
// Arrange
render();
const modal = screen.queryByTestId('modal');
// Assert (modal should have style display: none)
expect(modal).toHaveStyle('display: none');
});
it('calls onClose when the close button is clicked', () => {
// Arrange
const onClose = jest.fn();
render();
// Act
const closeButton = screen.getByTestId('modal-close-button');
fireEvent.click(closeButton);
expect(onClose).toHaveBeenCalled();
});
it('calls onConfirm when the update button is clicked', () => {
// Arrange
const onConfirm = jest.fn();
render();
// Act
const updateButton = screen.getByText('Update');
fireEvent.click(updateButton);
expect(onConfirm).toHaveBeenCalled();
});
});