@@ -11,18 +11,7 @@ governing permissions and limitations under the License.
1111
1212const getRuleFetchFn = require ( '../getRuleFetchFn' ) ;
1313const createNewLogger = require ( '../createNewLogger' ) ;
14-
15- const createFakeFetch = ( returnStatus = 200 ) =>
16- jest . fn ( ( resource ) =>
17- Promise . resolve ( {
18- clone : ( ) => ( {
19- arrayBuffer : ( ) => Promise . resolve ( `${ resource } :arrayBuffer` ) ,
20- status : returnStatus
21- } ) ,
22- arrayBuffer : ( ) => Promise . resolve ( `${ resource } :arrayBuffer` ) ,
23- status : returnStatus
24- } )
25- ) ;
14+ const createFakeFetch = require ( '../__tests_helpers__/createFakeFetchResponse' ) ;
2615
2716describe ( 'getRuleFetchFn' , ( ) => {
2817 test ( 'returns a function that will make a successful fetch and returns the response' , ( ) => {
@@ -32,11 +21,27 @@ describe('getRuleFetchFn', () => {
3221 return ruleFetchFn ( 'http://www.google.com' ) . then ( ( r ) => {
3322 expect ( r . status ) . toBe ( 200 ) ;
3423 return r . arrayBuffer ( ) . then ( ( b ) => {
35- expect ( b ) . toBe ( 'http://www.google.com:arrayBuffer' ) ;
24+ expect ( new TextDecoder ( 'utf-8' ) . decode ( b ) ) . toBe (
25+ 'http://www.google.com:arrayBuffer'
26+ ) ;
3627 } ) ;
3728 } ) ;
3829 } ) ;
3930
31+ test ( 'returns a function that will make a successful fetch and handles large responses' , async ( ) => {
32+ const logger = createNewLogger ( ) ;
33+ const ruleFetchFn = getRuleFetchFn (
34+ createFakeFetch ( 200 , true ) ,
35+ [ ] ,
36+ { } ,
37+ logger
38+ ) ;
39+
40+ await expect (
41+ ruleFetchFn ( 'http://www.google.com' )
42+ ) . resolves . not . toThrowError ( ) ;
43+ } ) ;
44+
4045 test ( 'returns a function that logs a successful fetch' , ( ) => {
4146 const logger = createNewLogger ( { ruleId : 1 } ) ;
4247 const ruleFetchFn = getRuleFetchFn ( createFakeFetch ( ) , [ ] , { } , logger ) ;
@@ -56,7 +61,7 @@ describe('getRuleFetchFn', () => {
5661 'Response Status' ,
5762 '200' ,
5863 'Response Body' ,
59- 'empty '
64+ 'http://www.google.com:arrayBuffer '
6065 ] ,
6166 name : 'evaluatingRule' ,
6267 timestampMs : expect . any ( Number )
@@ -86,7 +91,7 @@ describe('getRuleFetchFn', () => {
8691 'Response Status' ,
8792 '200' ,
8893 'Response Body' ,
89- 'empty '
94+ 'http://www.google.com:arrayBuffer '
9095 ] ,
9196 name : 'evaluatingRule' ,
9297 timestampMs : expect . any ( Number )
@@ -122,7 +127,7 @@ describe('getRuleFetchFn', () => {
122127 'Response Status' ,
123128 '200' ,
124129 'Response Body' ,
125- 'empty '
130+ 'http://www.google.com:arrayBuffer '
126131 ] ,
127132 name : 'evaluatingRule' ,
128133 timestampMs : expect . any ( Number )
@@ -137,6 +142,8 @@ describe('getRuleFetchFn', () => {
137142 const ruleFetchFn = getRuleFetchFn ( createFakeFetch ( ) , [ ] , { } , logger ) ;
138143
139144 return ruleFetchFn ( {
145+ url : 'http://www.google.com' ,
146+ method : 'POST' ,
140147 headers : { entries : ( ) => [ [ 'X-Id-Resource' , 123 ] ] }
141148 } ) . then ( ( ) => {
142149 expect ( logger . getJsonLogs ( ) ) . toStrictEqual ( [
@@ -147,13 +154,13 @@ describe('getRuleFetchFn', () => {
147154 '🚀' ,
148155 'FETCH' ,
149156 'Resource' ,
150- '{"headers":{}}' ,
157+ '{"url":"http://www.google.com","method":"POST"," headers":{}}' ,
151158 'Options' ,
152159 '{"headers":{"X-Id-Resource":123}}' ,
153160 'Response Status' ,
154161 '200' ,
155162 'Response Body' ,
156- 'empty '
163+ 'http://www.google.com:arrayBuffer '
157164 ] ,
158165 name : 'evaluatingRule' ,
159166 timestampMs : expect . any ( Number )
0 commit comments