Skip to content

Commit a27eb9e

Browse files
committed
chore: add test for fallback
1 parent daa8705 commit a27eb9e

File tree

1 file changed

+31
-15
lines changed

1 file changed

+31
-15
lines changed

test/select-query-parser/result.test-d.ts

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ type SelectQueryFromTableResult<
120120
}
121121

122122
{
123-
type SelectQueryFromTableResult<
123+
type SelectQueryFromPersonalTableResult<
124124
TableName extends keyof Database['personal']['Tables'],
125125
Q extends string
126126
> = GetResult<
@@ -130,22 +130,38 @@ type SelectQueryFromTableResult<
130130
Database['personal']['Tables'][TableName]['Relationships'],
131131
Q
132132
>
133-
134-
let result: SelectQueryFromTableResult<'users', `data->bar->baz, data->en, data->bar`>
135-
let expected: {
136-
baz: number
137-
en: 'ONE' | 'TWO' | 'THREE'
138-
bar: {
133+
// Should work with Json object accessor
134+
{
135+
let result: SelectQueryFromPersonalTableResult<'users', `data->bar->baz, data->en, data->bar`>
136+
let expected: {
139137
baz: number
138+
en: 'ONE' | 'TWO' | 'THREE'
139+
bar: {
140+
baz: number
141+
}
140142
}
143+
expectType<TypeEqual<typeof result, typeof expected>>(true)
141144
}
142-
expectType<TypeEqual<typeof result, typeof expected>>(true)
143-
144-
let result2: SelectQueryFromTableResult<'users', `data->bar->>baz, data->>en, data->>bar`>
145-
let expected2: {
146-
baz: string
147-
en: 'ONE' | 'TWO' | 'THREE'
148-
bar: string
145+
// Should work with Json string accessor
146+
{
147+
let result: SelectQueryFromPersonalTableResult<
148+
'users',
149+
`data->bar->>baz, data->>en, data->>bar`
150+
>
151+
let expected: {
152+
baz: string
153+
en: 'ONE' | 'TWO' | 'THREE'
154+
bar: string
155+
}
156+
expectType<TypeEqual<typeof result, typeof expected>>(true)
157+
}
158+
// Should fallback to defaults if unknown properties are mentionned
159+
{
160+
let result: SelectQueryFromPersonalTableResult<'users', `data->bar->>nope, data->neither`>
161+
let expected: {
162+
nope: string
163+
neither: Json
164+
}
165+
expectType<TypeEqual<typeof result, typeof expected>>(true)
149166
}
150-
expectType<TypeEqual<typeof result2, typeof expected2>>(true)
151167
}

0 commit comments

Comments
 (0)