fix(admin): datetime popover clock, unsaved confirm, inferred list dates
BM UAT on v0.1.1 showed a date-only calendar for datetime fields, a stuck discard dialog, and raw ISO timestamps when columns.yaml omitted type. The picker now edits time in the popover, confirm sits above the calendar, and omitted time.Time / Date / TimeOfDay columns compile as datetime / date / time. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -124,6 +124,31 @@ describe('calendar popover (backstop 1)', () => {
|
||||
wrapper.unmount()
|
||||
})
|
||||
|
||||
it('shows a time picker in the datetime popover and keeps the popover open after a day click', async () => {
|
||||
const wrapper = mountField(field(), '2026-10-02T10:30:00Z')
|
||||
await wrapper.find('[data-action="open-calendar"]').trigger('click')
|
||||
await flushPromises()
|
||||
const popover = document.body.querySelector<HTMLElement>('[data-datepicker-calendar]')
|
||||
expect(popover).not.toBeNull()
|
||||
const clock = popover!.querySelector<HTMLElement>('[data-datepicker-time]')
|
||||
expect(clock).not.toBeNull()
|
||||
expect(clock!.querySelector('[data-reka-time-field-segment="hour"]')?.textContent).toBe('12')
|
||||
expect(clock!.querySelector('[data-reka-time-field-segment="minute"]')?.textContent).toBe('30')
|
||||
const day = Array.from(popover!.querySelectorAll<HTMLElement>('[data-reka-calendar-cell-trigger]')).find(
|
||||
(el) => el.textContent?.trim() === '3' && !el.hasAttribute('data-outside-view'),
|
||||
)
|
||||
day?.click()
|
||||
await flushPromises()
|
||||
expect(document.body.querySelector('[data-datepicker-calendar]')).not.toBeNull()
|
||||
expect(emitted(wrapper).at(-1)).toBe('2026-10-03T10:30:00Z')
|
||||
const minute = clock!.querySelector<HTMLElement>('[data-reka-time-field-segment="minute"]')!
|
||||
minute.focus()
|
||||
keydown(minute, 'ArrowUp')
|
||||
await flushPromises()
|
||||
expect(emitted(wrapper).at(-1)).toBe('2026-10-03T10:31:00Z')
|
||||
wrapper.unmount()
|
||||
})
|
||||
|
||||
it('starts the week on the field firstDay, else on the locale first day', async () => {
|
||||
const heads = async (f: FormField) => {
|
||||
const wrapper = mountField(f, '2026-10-10')
|
||||
|
||||
Reference in New Issue
Block a user