Skip to content

Commit 6b26b30

Browse files
committed
Use hasBodyAndHeaders to fix TS issues in fetchBaseQuery.test.tsx
1 parent 4457a19 commit 6b26b30

File tree

1 file changed

+182
-5
lines changed

1 file changed

+182
-5
lines changed

packages/toolkit/src/query/tests/fetchBaseQuery.test.tsx

Lines changed: 182 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { HttpResponse, delay, http } from 'msw'
66
import nodeFetch from 'node-fetch'
77
import queryString from 'query-string'
88
import { vi } from 'vitest'
9-
import { setupApiStore } from '../../tests/utils/helpers'
9+
import { hasBodyAndHeaders, setupApiStore } from '../../tests/utils/helpers'
1010
import type { BaseQueryApi } from '../baseQueryTypes'
1111
import { server } from './mocks/server'
1212

@@ -356,6 +356,10 @@ describe('fetchBaseQuery', () => {
356356
{},
357357
)
358358

359+
if (!hasBodyAndHeaders(request)) {
360+
expect.fail('Expected request to have body and headers')
361+
}
362+
359363
expect(request.headers['content-type']).toBe('application/json')
360364
expect(request.body).toEqual(data)
361365
})
@@ -369,6 +373,10 @@ describe('fetchBaseQuery', () => {
369373
{},
370374
)
371375

376+
if (!hasBodyAndHeaders(request)) {
377+
expect.fail('Expected request to have body and headers')
378+
}
379+
372380
expect(request.headers['content-type']).toBe('application/json')
373381
expect(request.body).toEqual(data)
374382
})
@@ -389,6 +397,10 @@ describe('fetchBaseQuery', () => {
389397
{},
390398
)
391399

400+
if (!hasBodyAndHeaders(request)) {
401+
expect.fail('Expected request to have body and headers')
402+
}
403+
392404
expect(request.headers['content-type']).toBe('text/html')
393405
expect(request.body).toEqual('[object Object]')
394406
})
@@ -407,6 +419,10 @@ describe('fetchBaseQuery', () => {
407419
{},
408420
)
409421

422+
if (!hasBodyAndHeaders(request)) {
423+
expect.fail('Expected request to have body and headers')
424+
}
425+
410426
expect(request.headers['content-type']).toBe('text/html')
411427
expect(request.body).toEqual(data.join(','))
412428
})
@@ -428,6 +444,10 @@ describe('fetchBaseQuery', () => {
428444
{},
429445
)
430446

447+
if (!hasBodyAndHeaders(request)) {
448+
expect.fail('Expected request to have body and headers')
449+
}
450+
431451
expect(request.headers['content-type']).toBe('application/vnd.api+json')
432452
})
433453

@@ -436,15 +456,20 @@ describe('fetchBaseQuery', () => {
436456
items: new Set(['A', 'B', 'C']),
437457
}
438458

439-
const { data: request } = await baseQuery(
459+
let request: any
460+
;({ data: request } = await baseQuery(
440461
{
441462
url: '/echo',
442463
body,
443464
method: 'POST',
444465
},
445466
commonBaseQueryApi,
446467
{},
447-
)
468+
))
469+
470+
if (!hasBodyAndHeaders(request)) {
471+
expect.fail('Expected request to have body and headers')
472+
}
448473

449474
expect(request.headers['content-type']).toBe('application/json')
450475
expect(request.body).toEqual({ items: {} }) // Set is not properly marshalled by default
@@ -457,15 +482,19 @@ describe('fetchBaseQuery', () => {
457482
value instanceof Set ? [...value] : value,
458483
})
459484

460-
const { data: request } = await baseQueryWithReplacer(
485+
;({ data: request } = await baseQueryWithReplacer(
461486
{
462487
url: '/echo',
463488
body,
464489
method: 'POST',
465490
},
466491
commonBaseQueryApi,
467492
{},
468-
)
493+
))
494+
495+
if (!hasBodyAndHeaders(request)) {
496+
expect.fail('Expected request to have body and headers')
497+
}
469498

470499
expect(request.headers['content-type']).toBe('application/json')
471500
expect(request.body).toEqual({ items: ['A', 'B', 'C'] }) // Set is marshalled correctly by jsonReplacer
@@ -480,6 +509,14 @@ describe('fetchBaseQuery', () => {
480509
{},
481510
)
482511

512+
if (!hasBodyAndHeaders(request)) {
513+
expect.fail('Expected request to have body and headers')
514+
}
515+
516+
if (!('url' in request)) {
517+
expect.fail('Expected request to have url')
518+
}
519+
483520
expect(request.url).toEqual(`${baseUrl}/echo`)
484521
})
485522

@@ -492,6 +529,14 @@ describe('fetchBaseQuery', () => {
492529
{},
493530
)
494531

532+
if (!hasBodyAndHeaders(request)) {
533+
expect.fail('Expected request to have body and headers')
534+
}
535+
536+
if (!('url' in request)) {
537+
expect.fail('Expected request to have url')
538+
}
539+
495540
expect(request.url).toEqual(`${baseUrl}/echo?a=1&b=true`)
496541
})
497542

@@ -504,6 +549,14 @@ describe('fetchBaseQuery', () => {
504549
{},
505550
)
506551

552+
if (!hasBodyAndHeaders(request)) {
553+
expect.fail('Expected request to have body and headers')
554+
}
555+
556+
if (!('url' in request)) {
557+
expect.fail('Expected request to have url')
558+
}
559+
507560
expect(request.url).toEqual(`${baseUrl}/echo?banana=pudding&a=1&b=true`)
508561
})
509562

@@ -516,6 +569,14 @@ describe('fetchBaseQuery', () => {
516569
{},
517570
)
518571

572+
if (!hasBodyAndHeaders(request)) {
573+
expect.fail('Expected request to have body and headers')
574+
}
575+
576+
if (!('url' in request)) {
577+
expect.fail('Expected request to have url')
578+
}
579+
519580
expect(request.url).toEqual(`${baseUrl}/echo?apple=fruit`)
520581
})
521582

@@ -528,6 +589,14 @@ describe('fetchBaseQuery', () => {
528589
{},
529590
)
530591

592+
if (!hasBodyAndHeaders(request)) {
593+
expect.fail('Expected request to have body and headers')
594+
}
595+
596+
if (!('url' in request)) {
597+
expect.fail('Expected request to have url')
598+
}
599+
531600
expect(request.url).toEqual(`${baseUrl}/echo?apple=fruit&randy=null`)
532601
})
533602

@@ -567,6 +636,14 @@ describe('fetchBaseQuery', () => {
567636
{},
568637
)
569638

639+
if (!hasBodyAndHeaders(request)) {
640+
expect.fail('Expected request to have body and headers')
641+
}
642+
643+
if (!('url' in request)) {
644+
expect.fail('Expected request to have url')
645+
}
646+
570647
expect(request.url).toEqual(
571648
`${baseUrl}/echo?someArray[]=a&someArray[]=b&someArray[]=c`,
572649
)
@@ -598,6 +675,14 @@ describe('fetchBaseQuery', () => {
598675
{},
599676
)
600677

678+
if (!hasBodyAndHeaders(request)) {
679+
expect.fail('Expected request to have body and headers')
680+
}
681+
682+
if (!('url' in request)) {
683+
expect.fail('Expected request to have url')
684+
}
685+
601686
expect(request.body).toMatchObject(testBody)
602687
})
603688
})
@@ -633,6 +718,14 @@ describe('fetchBaseQuery', () => {
633718
{},
634719
)
635720

721+
if (!hasBodyAndHeaders(request)) {
722+
expect.fail('Expected request to have body and headers')
723+
}
724+
725+
if (!('url' in request)) {
726+
expect.fail('Expected request to have url')
727+
}
728+
636729
expect(request.headers['fake']).toBe(defaultHeaders['fake'])
637730
expect(request.headers['delete']).toBe(defaultHeaders['delete'])
638731
expect(request.headers['delete2']).toBe(defaultHeaders['delete2'])
@@ -645,6 +738,14 @@ describe('fetchBaseQuery', () => {
645738
{},
646739
)
647740

741+
if (!hasBodyAndHeaders(request)) {
742+
expect.fail('Expected request to have body and headers')
743+
}
744+
745+
if (!('url' in request)) {
746+
expect.fail('Expected request to have url')
747+
}
748+
648749
expect(request.headers['authorization']).toBe('Bearer banana')
649750
expect(request.headers['fake']).toBe(defaultHeaders['fake'])
650751
expect(request.headers['delete']).toBe(defaultHeaders['delete'])
@@ -664,6 +765,14 @@ describe('fetchBaseQuery', () => {
664765
{},
665766
)
666767

768+
if (!hasBodyAndHeaders(request)) {
769+
expect.fail('Expected request to have body and headers')
770+
}
771+
772+
if (!('url' in request)) {
773+
expect.fail('Expected request to have url')
774+
}
775+
667776
expect(request.headers['authorization']).toBe('Bearer banana')
668777
expect(request.headers['content-type']).toBe('custom-content-type')
669778
expect(request.headers['fake']).toBe(defaultHeaders['fake'])
@@ -680,6 +789,14 @@ describe('fetchBaseQuery', () => {
680789
{},
681790
)
682791

792+
if (!hasBodyAndHeaders(request)) {
793+
expect.fail('Expected request to have body and headers')
794+
}
795+
796+
if (!('url' in request)) {
797+
expect.fail('Expected request to have url')
798+
}
799+
683800
expect(request.headers['fake']).toBe(fake)
684801
expect(request.headers['delete']).toBeUndefined()
685802
expect(request.headers['delete2']).toBeUndefined()
@@ -700,6 +817,14 @@ describe('fetchBaseQuery', () => {
700817

701818
const { data: request } = await doRequest()
702819

820+
if (!hasBodyAndHeaders(request)) {
821+
expect.fail('Expected request to have body and headers')
822+
}
823+
824+
if (!('url' in request)) {
825+
expect.fail('Expected request to have url')
826+
}
827+
703828
expect(request.headers['authorization']).toBe(`Bearer ${token}`)
704829
})
705830

@@ -720,6 +845,14 @@ describe('fetchBaseQuery', () => {
720845

721846
const { data: request } = await doRequest()
722847

848+
if (!hasBodyAndHeaders(request)) {
849+
expect.fail('Expected request to have body and headers')
850+
}
851+
852+
if (!('url' in request)) {
853+
expect.fail('Expected request to have url')
854+
}
855+
723856
expect(request.headers['authorization']).toBe(`Bearer ${token}`)
724857
})
725858

@@ -739,6 +872,14 @@ describe('fetchBaseQuery', () => {
739872

740873
const { data: request } = await doRequest()
741874

875+
if (!hasBodyAndHeaders(request)) {
876+
expect.fail('Expected request to have body and headers')
877+
}
878+
879+
if (!('url' in request)) {
880+
expect.fail('Expected request to have url')
881+
}
882+
742883
expect(request.headers['authorization']).toBe(`Bearer ${token}`)
743884
})
744885

@@ -890,6 +1031,14 @@ describe('fetchBaseQuery', () => {
8901031

8911032
const { data: request } = await doRequest()
8921033

1034+
if (!hasBodyAndHeaders(request)) {
1035+
expect.fail('Expected request to have body and headers')
1036+
}
1037+
1038+
if (!('url' in request)) {
1039+
expect.fail('Expected request to have url')
1040+
}
1041+
8931042
expect(request.headers['authorization']).toBe(`Bearer ${token}`)
8941043
})
8951044

@@ -900,6 +1049,14 @@ describe('fetchBaseQuery', () => {
9001049
{},
9011050
)
9021051

1052+
if (!hasBodyAndHeaders(request)) {
1053+
expect.fail('Expected request to have body and headers')
1054+
}
1055+
1056+
if (!('url' in request)) {
1057+
expect.fail('Expected request to have url')
1058+
}
1059+
9031060
expect(request.headers['fake']).toBe(defaultHeaders['fake'])
9041061
expect(request.headers['delete']).toBe(defaultHeaders['delete'])
9051062
expect(request.headers['delete2']).toBe(defaultHeaders['delete2'])
@@ -914,6 +1071,14 @@ describe('fetchBaseQuery', () => {
9141071
{},
9151072
)
9161073

1074+
if (!hasBodyAndHeaders(request)) {
1075+
expect.fail('Expected request to have body and headers')
1076+
}
1077+
1078+
if (!('url' in request)) {
1079+
expect.fail('Expected request to have url')
1080+
}
1081+
9171082
expect(request.headers['banana']).toBe('1')
9181083
expect(request.headers['fake']).toBe(defaultHeaders['fake'])
9191084
expect(request.headers['delete']).toBe(defaultHeaders['delete'])
@@ -929,6 +1094,10 @@ describe('fetchBaseQuery', () => {
9291094
{},
9301095
)
9311096

1097+
if (!hasBodyAndHeaders(request)) {
1098+
expect.fail('Expected request to have body and headers')
1099+
}
1100+
9321101
expect(request.headers['banana']).toBeUndefined()
9331102
expect(request.headers['fake']).toBe(defaultHeaders['fake'])
9341103
expect(request.headers['delete']).toBe(defaultHeaders['delete'])
@@ -1047,6 +1216,14 @@ describe('fetchFn', () => {
10471216
{},
10481217
)
10491218

1219+
if (!hasBodyAndHeaders(request)) {
1220+
expect.fail('Expected request to have body and headers')
1221+
}
1222+
1223+
if (!('url' in request)) {
1224+
expect.fail('Expected request to have url')
1225+
}
1226+
10501227
expect(request.url).toEqual(`${baseUrl}/echo?apple=fruit`)
10511228
})
10521229

0 commit comments

Comments
 (0)