33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import { describe, it, expect, vi } from 'vitest';
|
|
import { render, screen, fireEvent } from '@testing-library/react';
|
|
import '@testing-library/jest-dom';
|
|
import TimeAdjuster from '../../src/components/tracker/TimeAdjuster';
|
|
|
|
describe('TimeAdjuster', () => {
|
|
it('renders with default value', () => {
|
|
const { container } = render(<TimeAdjuster onTimeChange={() => {}} />);
|
|
const input = container.querySelector('input');
|
|
expect(input).toBeInTheDocument();
|
|
});
|
|
|
|
it('calls onTimeChange when value changes', () => {
|
|
const handleChange = vi.fn();
|
|
const { container } = render(<TimeAdjuster onTimeChange={handleChange} />);
|
|
const input = container.querySelector('input');
|
|
|
|
vi.clearAllMocks();
|
|
|
|
fireEvent.change(input!, { target: { value: '2024-01-01T12:00' } });
|
|
expect(handleChange).toHaveBeenCalledWith(new Date('2024-01-01T12:00').toISOString());
|
|
});
|
|
|
|
it('resets to now when reset button is clicked', async () => {
|
|
const handleChange = vi.fn();
|
|
render(<TimeAdjuster onTimeChange={handleChange} />);
|
|
const resetButton = screen.getByText(/Reset to now/i);
|
|
|
|
fireEvent.click(resetButton);
|
|
expect(handleChange).toHaveBeenCalled();
|
|
});
|
|
});
|