Skip to content

Commit f357484

Browse files
author
devgioele
committed
add date and bigint to AbstractQueryValueElement
1 parent e71e2d3 commit f357484

2 files changed

Lines changed: 26 additions & 2 deletions

File tree

src/engine/query.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@ import { useCallback, useMemo } from 'react'
22

33
export type Query = Record<string, string | string[]>
44

5-
export type AbstractQueryValueElement = string | number | boolean
5+
export type AbstractQueryValueElement =
6+
| string
7+
| number
8+
| boolean
9+
| Date
10+
| bigint
611

712
export type AbstractQuery = Record<
813
string,

src/routers/__test__/nextRouter.test.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,15 +181,32 @@ describe('NextRouter', () => {
181181
const search = 'Max'
182182
const department = 'IT'
183183
const defaultAge = 42
184+
const defaultBirthDate = new Date()
185+
defaultBirthDate.setMilliseconds(0)
186+
const defaultNetWorth = BigInt(0xf8ffffffffffffffffffffffffff2fffn)
187+
const defaultDarkMode: boolean | undefined = true
184188

185189
const schema = z.object({
186190
search: z.string().optional().catch(undefined),
187191
department: z.string().optional().catch(undefined),
188192
age: z.string().pipe(z.coerce.number().optional()).catch(undefined),
193+
birthDate: z.string().pipe(z.coerce.date().optional()).catch(undefined),
194+
netWorth: z.string().pipe(z.coerce.bigint().optional()).catch(undefined),
195+
darkMode: z.string().pipe(z.coerce.boolean().optional()).catch(undefined),
189196
})
190197

191198
const { result } = renderHook(() =>
192-
useQuery({ search: '', department: '', age: defaultAge }, schema)
199+
useQuery(
200+
{
201+
search: '',
202+
department: '',
203+
age: defaultAge,
204+
birthDate: defaultBirthDate,
205+
netWorth: defaultNetWorth,
206+
darkMode: defaultDarkMode,
207+
},
208+
schema
209+
)
193210
)
194211

195212
act(() => {
@@ -203,6 +220,8 @@ describe('NextRouter', () => {
203220
expect(result.current.query.search).toBe(search)
204221
expect(result.current.query.department).toBe(department)
205222
expect(result.current.query.age).toBe(defaultAge)
223+
expect(result.current.query.birthDate).toEqual(defaultBirthDate)
224+
expect(result.current.query.netWorth).toEqual(defaultNetWorth)
206225
})
207226

208227
test('unspecified query keys should be left untouched', () => {

0 commit comments

Comments
 (0)