@@ -9,24 +9,21 @@ it('returns bypassed request given a request url string', async () => {
9
9
// Relative URLs are rebased against the current location.
10
10
expect ( request . method ) . toBe ( 'GET' )
11
11
expect ( request . url ) . toBe ( 'https://api.example.com/resource' )
12
- expect ( Object . fromEntries ( request . headers . entries ( ) ) ) . toEqual ( {
13
- 'x-msw-intention' : 'bypass' ,
14
- } )
12
+ expect ( Array . from ( request . headers ) ) . toEqual ( [ [ 'accept' , 'msw/passthrough' ] ] )
15
13
} )
16
14
17
15
it ( 'returns bypassed request given a request url' , async ( ) => {
18
16
const request = bypass ( new URL ( '/resource' , 'https://api.example.com' ) )
19
17
20
18
expect ( request . url ) . toBe ( 'https://api.example.com/resource' )
21
- expect ( Object . fromEntries ( request . headers ) ) . toEqual ( {
22
- 'x-msw-intention' : 'bypass' ,
23
- } )
19
+ expect ( Array . from ( request . headers ) ) . toEqual ( [ [ 'accept' , 'msw/passthrough' ] ] )
24
20
} )
25
21
26
22
it ( 'returns bypassed request given request instance' , async ( ) => {
27
23
const original = new Request ( 'http://localhost/resource' , {
28
24
method : 'POST' ,
29
25
headers : {
26
+ accept : '*/*' ,
30
27
'X-My-Header' : 'value' ,
31
28
} ,
32
29
body : 'hello world' ,
@@ -40,10 +37,11 @@ it('returns bypassed request given request instance', async () => {
40
37
expect ( original . bodyUsed ) . toBe ( false )
41
38
42
39
expect ( bypassedRequestBody ) . toEqual ( await original . text ( ) )
43
- expect ( Object . fromEntries ( request . headers . entries ( ) ) ) . toEqual ( {
44
- ...Object . fromEntries ( original . headers . entries ( ) ) ,
45
- 'x-msw-intention' : 'bypass' ,
46
- } )
40
+ expect ( Array . from ( request . headers ) ) . toEqual ( [
41
+ [ 'accept' , '*/*, msw/passthrough' ] ,
42
+ [ 'content-type' , 'text/plain;charset=UTF-8' ] ,
43
+ [ 'x-my-header' , 'value' ] ,
44
+ ] )
47
45
} )
48
46
49
47
it ( 'allows modifying the bypassed request instance' , async ( ) => {
@@ -57,13 +55,26 @@ it('allows modifying the bypassed request instance', async () => {
57
55
} )
58
56
59
57
expect ( request . method ) . toBe ( 'PUT' )
60
- expect ( Object . fromEntries ( request . headers . entries ( ) ) ) . toEqual ( {
61
- 'x-msw-intention' : 'bypass' ,
62
- 'x-modified-header' : 'yes' ,
63
- } )
58
+ expect ( Array . from ( request . headers ) ) . toEqual ( [
59
+ [ 'accept' , 'msw/passthrough' ] ,
60
+ [ 'x-modified-header' , 'yes' ] ,
61
+ ] )
64
62
expect ( original . bodyUsed ) . toBe ( false )
65
63
expect ( request . bodyUsed ) . toBe ( false )
66
64
67
65
expect ( await request . text ( ) ) . toBe ( 'hello world' )
68
66
expect ( original . bodyUsed ) . toBe ( false )
69
67
} )
68
+
69
+ it ( 'supports bypassing "keepalive: true" requests' , async ( ) => {
70
+ const original = new Request ( 'http://localhost/resource' , {
71
+ method : 'POST' ,
72
+ keepalive : true ,
73
+ } )
74
+ const request = bypass ( original )
75
+
76
+ expect ( request . method ) . toBe ( 'POST' )
77
+ expect ( request . url ) . toBe ( 'http://localhost/resource' )
78
+ expect ( request . body ) . toBeNull ( )
79
+ expect ( Array . from ( request . headers ) ) . toEqual ( [ [ 'accept' , 'msw/passthrough' ] ] )
80
+ } )
0 commit comments