import { describe, it, expect, jest } from '@jest/globals';
import { render, screen, fireEvent } from '@testing-library/react';
import { Toolbar } from './Toolbar';
describe('Toolbar Component', () => {
it('should render toolbar with save, preview, exit buttons', () => {
render();
expect(screen.getByTestId('save-btn')).toBeInTheDocument();
expect(screen.getByTestId('preview-btn')).toBeInTheDocument();
expect(screen.getByTestId('exit-btn')).toBeInTheDocument();
});
it('should call onSave when save button is clicked', () => {
const onSave = jest.fn();
render();
fireEvent.click(screen.getByTestId('save-btn'));
expect(onSave).toHaveBeenCalledTimes(1);
});
it('should call onPreview when preview button is clicked', () => {
const onPreview = jest.fn();
render();
fireEvent.click(screen.getByTestId('preview-btn'));
expect(onPreview).toHaveBeenCalledTimes(1);
});
it('should call onExit when exit button is clicked', () => {
const onExit = jest.fn();
render();
fireEvent.click(screen.getByTestId('exit-btn'));
expect(onExit).toHaveBeenCalledTimes(1);
});
it('should show loading indicator when isLoading is true', () => {
render();
expect(screen.getByTestId('loading-indicator')).toBeInTheDocument();
});
it('should disable buttons when loading', () => {
render();
expect(screen.getByTestId('save-btn')).toBeDisabled();
expect(screen.getByTestId('preview-btn')).toBeDisabled();
expect(screen.getByTestId('exit-btn')).toBeDisabled();
});
});