import { fireEvent, render, screen } from '@testing-library/react' import { describe, expect, it, vi } from 'vitest' import DateTimeField from '@/components/common/DateTimeField' describe ('DateTimeField', () => { it ('renders an ISO value as a datetime-local value', () => { render () const input = screen.getByLabelText ('日時') expect (input).toHaveValue ('2026-01-02T12:04') }) it ('reports local changes as ISO strings and empty values as null', () => { const handleChange = vi.fn () render () const input = screen.getByLabelText ('日時') fireEvent.change (input, { target: { value: '2026-01-02T03:04' } }) fireEvent.change (input, { target: { value: '' } }) const first = handleChange.mock.calls[0]?.[0] expect (first).toMatch (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}Z$/) expect (new Date (first).getUTCSeconds ()).toBe (0) expect (handleChange).toHaveBeenLastCalledWith (null) }) })