@@ -174,28 +174,28 @@ describe('endpoint overrides', () => {
174174 } ) ;
175175} ) ;
176176
177- describe ( 'option encodeParams ' , ( ) => {
177+ describe ( 'option encodePathParams ' , ( ) => {
178178 const config = {
179179 apiFile : './fixtures/emptyApi.ts' ,
180180 schemaFile : resolve ( __dirname , 'fixtures/petstore.json' ) ,
181- encodeParams : true ,
181+ encodePathParams : true ,
182182 } ;
183183
184- it ( 'should encode query parameters' , async ( ) => {
184+ it ( 'should encode path parameters' , async ( ) => {
185185 const api = await generateEndpoints ( {
186186 ...config ,
187- filterEndpoints : [ 'findPetsByStatus ' ] ,
187+ filterEndpoints : [ 'getOrderById ' ] ,
188188 } ) ;
189- expect ( api ) . toContain ( 'status: encodeURIComponent(String(queryArg.status))' ) ;
189+ // eslint-disable-next-line no-template-curly-in-string
190+ expect ( api ) . toContain ( '`/store/order/${encodeURIComponent(String(queryArg.orderId))}`' ) ;
190191 } ) ;
191192
192- it ( 'should encode path parameters' , async ( ) => {
193+ it ( 'should not encode query parameters' , async ( ) => {
193194 const api = await generateEndpoints ( {
194195 ...config ,
195- filterEndpoints : [ 'getOrderById ' ] ,
196+ filterEndpoints : [ 'findPetsByStatus ' ] ,
196197 } ) ;
197- // eslint-disable-next-line no-template-curly-in-string
198- expect ( api ) . toContain ( '`/store/order/${encodeURIComponent(String(queryArg.orderId))}`' ) ;
198+ expect ( api ) . toContain ( 'status: queryArg.status' ) ;
199199 } ) ;
200200
201201 it ( 'should not encode body parameters' , async ( ) => {
@@ -217,18 +217,63 @@ describe('option encodeParams', () => {
217217 expect ( api ) . toContain ( '`/store/order/${encodeURIComponent(String(queryArg))}`' ) ;
218218 } ) ;
219219
220- it ( 'should not encode parameters when encodeParams is false' , async ( ) => {
220+ it ( 'should not encode path parameters when encodePathParams is false' , async ( ) => {
221221 const api = await generateEndpoints ( {
222222 ...config ,
223- encodeParams : false ,
223+ encodePathParams : false ,
224224 filterEndpoints : [ 'findPetsByStatus' , 'getOrderById' ] ,
225225 } ) ;
226- expect ( api ) . toContain ( 'status: queryArg.status' ) ;
227226 // eslint-disable-next-line no-template-curly-in-string
228227 expect ( api ) . toContain ( '`/store/order/${queryArg.orderId}`' ) ;
229228 } ) ;
230229} ) ;
231230
231+ describe ( 'option encodeQueryParams' , ( ) => {
232+ const config = {
233+ apiFile : './fixtures/emptyApi.ts' ,
234+ schemaFile : resolve ( __dirname , 'fixtures/petstore.json' ) ,
235+ encodeQueryParams : true ,
236+ } ;
237+
238+ it ( 'should conditionally encode query parameters' , async ( ) => {
239+ const api = await generateEndpoints ( {
240+ ...config ,
241+ filterEndpoints : [ 'findPetsByStatus' ] ,
242+ } ) ;
243+
244+ expect ( api ) . toMatch (
245+ / p a r a m s : \s * { \s * \n \s * s t a t u s : \s * q u e r y A r g \. s t a t u s \s * \? \s * e n c o d e U R I C o m p o n e n t \( \s * S t r i n g \( q u e r y A r g \. s t a t u s \) \s * \) \s * : \s * u n d e f i n e d \s * , ? \s * \n \s * } / s
246+ ) ;
247+ } ) ;
248+
249+ it ( 'should not encode path parameters' , async ( ) => {
250+ const api = await generateEndpoints ( {
251+ ...config ,
252+ filterEndpoints : [ 'getOrderById' ] ,
253+ } ) ;
254+ // eslint-disable-next-line no-template-curly-in-string
255+ expect ( api ) . toContain ( '`/store/order/${queryArg.orderId}`' ) ;
256+ } ) ;
257+
258+ it ( 'should not encode body parameters' , async ( ) => {
259+ const api = await generateEndpoints ( {
260+ ...config ,
261+ filterEndpoints : [ 'addPet' ] ,
262+ } ) ;
263+ expect ( api ) . toContain ( 'body: queryArg.pet' ) ;
264+ expect ( api ) . not . toContain ( 'body: encodeURIComponent(String(queryArg.pet))' ) ;
265+ } ) ;
266+
267+ it ( 'should not encode query parameters when encodeQueryParams is false' , async ( ) => {
268+ const api = await generateEndpoints ( {
269+ ...config ,
270+ encodeQueryParams : false ,
271+ filterEndpoints : [ 'findPetsByStatus' , 'getOrderById' ] ,
272+ } ) ;
273+ expect ( api ) . toContain ( 'status: queryArg.status' ) ;
274+ } ) ;
275+ } ) ;
276+
232277describe ( 'option flattenArg' , ( ) => {
233278 const config = {
234279 apiFile : './fixtures/emptyApi.ts' ,
0 commit comments