Skip to content

Commit 9cff8c8

Browse files
committed
fix(tanstack-query): set correct name for pagination parameters in infinite query options
1 parent 739a18d commit 9cff8c8

File tree

4 files changed

+45
-21
lines changed

4 files changed

+45
-21
lines changed

.changeset/perfect-berries-beam.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@hey-api/openapi-ts': patch
3+
---
4+
5+
fix(tanstack-query): set correct name for pagination parameters in infinite query options

packages/openapi-ts/src/ir/__tests__/pagination.test.ts

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { getPaginationKeywordsRegExp } from '../pagination';
77
import type { IR } from '../types';
88

99
describe('paginationKeywordsRegExp', () => {
10-
const defaultScenarios: Array<{
10+
const defaultScenarios: ReadonlyArray<{
1111
result: boolean;
1212
value: string;
1313
}> = [
@@ -55,7 +55,7 @@ describe('paginationKeywordsRegExp', () => {
5555
},
5656
);
5757

58-
const customScenarios: Array<{
58+
const customScenarios: ReadonlyArray<{
5959
result: boolean;
6060
value: string;
6161
}> = [
@@ -98,7 +98,7 @@ describe('operationPagination', () => {
9898
path: '/test' as const,
9999
};
100100

101-
const queryScenarios: Array<{
101+
const queryScenarios: ReadonlyArray<{
102102
hasPagination: boolean;
103103
operation: IR.OperationObject;
104104
}> = [
@@ -128,19 +128,38 @@ describe('operationPagination', () => {
128128
},
129129
},
130130
},
131+
{
132+
hasPagination: true,
133+
operation: {
134+
...baseOperationMeta,
135+
id: 'op3',
136+
method: 'get',
137+
parameters: {
138+
query: {
139+
pagesize: queryParam('pageSize', 'string', true),
140+
},
141+
},
142+
},
143+
},
131144
];
132145

133146
it.each(queryScenarios)(
134147
'query params for $operation.id → $hasPagination',
135-
({
136-
hasPagination,
137-
operation,
138-
}: {
139-
hasPagination: boolean;
140-
operation: IR.OperationObject;
141-
}) => {
142-
const result = operationPagination({ context: emptyContext, operation });
143-
expect(Boolean(result)).toEqual(hasPagination);
148+
({ hasPagination, operation }: (typeof queryScenarios)[number]) => {
149+
const pagination = operationPagination({
150+
context: emptyContext,
151+
operation,
152+
});
153+
expect(Boolean(pagination)).toEqual(hasPagination);
154+
if (pagination && pagination.in !== 'body') {
155+
const parameter =
156+
operation.parameters?.[pagination.in]?.[
157+
pagination.name.toLocaleLowerCase()
158+
];
159+
if (parameter) {
160+
expect(pagination.name).toBe(parameter.name);
161+
}
162+
}
144163
},
145164
);
146165

packages/openapi-ts/src/ir/pagination.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export function getPaginationKeywordsRegExp(
99
}
1010

1111
export interface Pagination {
12-
in: string;
12+
in: 'body' | 'cookie' | 'header' | 'path' | 'query';
1313
name: string;
1414
schema: IR.SchemaObject;
1515
}

packages/openapi-ts/src/ir/parameter.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ export const parameterWithPagination = ({
8080
in: parameter.location,
8181
name:
8282
parameter.pagination === true
83-
? name
84-
: `${name}.${parameter.pagination}`,
83+
? parameter.name
84+
: `${parameter.name}.${parameter.pagination}`,
8585
schema: getPaginationSchema({ context, parameter })!,
8686
};
8787
}
@@ -94,8 +94,8 @@ export const parameterWithPagination = ({
9494
in: parameter.location,
9595
name:
9696
parameter.pagination === true
97-
? name
98-
: `${name}.${parameter.pagination}`,
97+
? parameter.name
98+
: `${parameter.name}.${parameter.pagination}`,
9999
schema: getPaginationSchema({ context, parameter })!,
100100
};
101101
}
@@ -108,8 +108,8 @@ export const parameterWithPagination = ({
108108
in: parameter.location,
109109
name:
110110
parameter.pagination === true
111-
? name
112-
: `${name}.${parameter.pagination}`,
111+
? parameter.name
112+
: `${parameter.name}.${parameter.pagination}`,
113113
schema: getPaginationSchema({ context, parameter })!,
114114
};
115115
}
@@ -122,8 +122,8 @@ export const parameterWithPagination = ({
122122
in: parameter.location,
123123
name:
124124
parameter.pagination === true
125-
? name
126-
: `${name}.${parameter.pagination}`,
125+
? parameter.name
126+
: `${parameter.name}.${parameter.pagination}`,
127127
schema: getPaginationSchema({ context, parameter })!,
128128
};
129129
}

0 commit comments

Comments
 (0)