mirror of
https://github.com/supabase/supabase.git
synced 2026-10-06 01:45:10 +03:00
87 lines
2.3 KiB
TypeScript
87 lines
2.3 KiB
TypeScript
import dayjs from 'dayjs'
|
|
import { describe, expect, it, vi } from 'vitest'
|
|
|
|
import {
|
|
EXPLORER_DATEPICKER_HELPERS,
|
|
getDefaultHelper,
|
|
} from '@/components/interfaces/Settings/Logs/Logs.constants'
|
|
import {
|
|
buildLogQueryParams,
|
|
resolveLogDateRange,
|
|
} from '@/components/interfaces/Settings/Logs/logsDateRange'
|
|
|
|
const lastHourHelper = getDefaultHelper(EXPLORER_DATEPICKER_HELPERS)
|
|
|
|
describe('resolveLogDateRange', () => {
|
|
it('recomputes helper ranges up to current time', () => {
|
|
vi.useFakeTimers()
|
|
const firstNow = new Date('2025-01-01T12:00:00.000Z')
|
|
vi.setSystemTime(firstNow)
|
|
|
|
const first = resolveLogDateRange({
|
|
from: '',
|
|
to: '',
|
|
isHelper: true,
|
|
text: lastHourHelper.text,
|
|
})
|
|
|
|
expect(first.to).toBe(dayjs(firstNow).toISOString())
|
|
expect(first.from).toBe(dayjs(firstNow).subtract(1, 'hour').toISOString())
|
|
|
|
const later = new Date('2025-01-01T13:10:00.000Z')
|
|
vi.setSystemTime(later)
|
|
|
|
const second = resolveLogDateRange({
|
|
from: '',
|
|
to: '',
|
|
isHelper: true,
|
|
text: lastHourHelper.text,
|
|
})
|
|
|
|
expect(second.to).toBe(dayjs(later).toISOString())
|
|
expect(second.from).toBe(dayjs(later).subtract(1, 'hour').toISOString())
|
|
expect(second.from).not.toBe(first.from)
|
|
|
|
vi.useRealTimers()
|
|
})
|
|
|
|
it('uses provided range when not a helper', () => {
|
|
const range = resolveLogDateRange({
|
|
from: '2025-01-01T10:00:00.000Z',
|
|
to: '2025-01-01T11:00:00.000Z',
|
|
isHelper: false,
|
|
})
|
|
|
|
expect(range.from).toBe('2025-01-01T10:00:00.000Z')
|
|
expect(range.to).toBe('2025-01-01T11:00:00.000Z')
|
|
})
|
|
})
|
|
|
|
describe('buildLogQueryParams', () => {
|
|
it('returns sql with recomputed helper range for repeated runs', () => {
|
|
vi.useFakeTimers()
|
|
const now = new Date('2025-01-02T08:00:00.000Z')
|
|
vi.setSystemTime(now)
|
|
|
|
const first = buildLogQueryParams(
|
|
{ from: '', to: '', isHelper: true, text: lastHourHelper.text },
|
|
'select 1'
|
|
)
|
|
|
|
const later = new Date('2025-01-02T09:30:00.000Z')
|
|
vi.setSystemTime(later)
|
|
|
|
const second = buildLogQueryParams(
|
|
{ from: '', to: '', isHelper: true, text: lastHourHelper.text },
|
|
'select 1'
|
|
)
|
|
|
|
expect(first.sql).toBe('select 1')
|
|
expect(second.sql).toBe('select 1')
|
|
expect(first.from).not.toBe(second.from)
|
|
expect(second.to).toBe(dayjs(later).toISOString())
|
|
|
|
vi.useRealTimers()
|
|
})
|
|
})
|