33namespace FiveamCode \LaravelNotionApi \Tests \Plugins ;
44
55use GuzzleHttp \Client ;
6- use Illuminate \Support \Str ;
76use Illuminate \Http \Client \Request ;
87use Illuminate \Support \Facades \File ;
98use Illuminate \Support \Facades \Http ;
9+ use Illuminate \Support \Str ;
1010
1111class PestPluginHttpRecorder
1212{
1313 public static function register ()
1414 {
1515 Http::macro ('recordAndFakeLater ' , function (array |string $ urls = ['* ' ]) {
16-
17- if (!is_array ($ urls )) {
16+ if (! is_array ($ urls )) {
1817 $ urls = [$ urls ];
1918 }
2019
@@ -26,12 +25,12 @@ public static function register()
2625 },
2726 ]);
2827 }
28+
2929 return $ recorder ;
3030 });
3131 }
3232}
3333
34-
3534class HttpRecorder
3635{
3736 private $ stubsFolder = '__recorded_stubs__ ' ;
@@ -41,12 +40,14 @@ class HttpRecorder
4140 public function storeIn ($ directory )
4241 {
4342 $ this ->stubsFolder = $ directory ;
43+
4444 return $ this ;
4545 }
4646
4747 public function minifyJson ()
4848 {
4949 $ this ->usePrettyJson = false ;
50+
5051 return $ this ;
5152 }
5253
@@ -57,34 +58,36 @@ public function handle(Request $request)
5758 $ urlInfo = parse_url ($ request ->url ());
5859
5960 //create specific filename for storing stubs
60- $ filename = Str::lower ($ request ->method ()) . '_ ' ;
61+ $ filename = Str::lower ($ request ->method ()). '_ ' ;
6162 $ filename .= Str::slug (Str::replace ('/ ' , '- ' , $ urlInfo ['path ' ]));
62- $ filename .= '_ ' . Str::slug (Str::replace ('& ' , '_ ' , Str::replace ('= ' , '- ' , $ urlInfo ['query ' ])));
63+ $ filename .= '_ ' . Str::slug (Str::replace ('& ' , '_ ' , Str::replace ('= ' , '- ' , $ urlInfo ['query ' ])));
6364 $ filename .= '.json ' ;
6465
65- if ($ forceRecording || !File::exists ('tests/ ' . $ this ->stubsFolder . '/ ' . $ filename )) {
66- File::makeDirectory ('tests/ ' . $ this ->stubsFolder , 0777 , true , true );
66+ if ($ forceRecording || ! File::exists ('tests/ ' . $ this ->stubsFolder . '/ ' . $ filename )) {
67+ File::makeDirectory ('tests/ ' . $ this ->stubsFolder , 0777 , true , true );
6768
6869 $ client = new Client ();
6970 $ response = $ client ->request ($ request ->method (), $ request ->url (), [
7071 'headers ' => $ request ->headers (),
7172 'body ' => $ request ->body (),
72- 'http_errors ' => false
73+ 'http_errors ' => false ,
7374 ]);
7475
7576 $ recordedResponse = [
7677 'status ' => $ response ->getStatusCode (),
77- 'data ' => json_decode ($ response ->getBody ()->getContents (), true )
78+ 'data ' => json_decode ($ response ->getBody ()->getContents (), true ),
7879 ];
7980
8081 file_put_contents (
81- 'tests/ ' . $ this ->stubsFolder . '/ ' . $ filename ,
82+ 'tests/ ' . $ this ->stubsFolder . '/ ' . $ filename ,
8283 json_encode ($ recordedResponse , $ this ->usePrettyJson ? JSON_PRETTY_PRINT : 0 )
8384 );
85+
8486 return Http::response ($ recordedResponse ['data ' ], $ response ->getStatusCode ());
8587 }
8688
87- $ preRecordedData = json_decode (file_get_contents ('tests/ ' . $ this ->stubsFolder . '/ ' . $ filename ), true );
89+ $ preRecordedData = json_decode (file_get_contents ('tests/ ' .$ this ->stubsFolder .'/ ' .$ filename ), true );
90+
8891 return Http::response ($ preRecordedData ['data ' ], $ preRecordedData ['status ' ]);
8992 }
9093}
0 commit comments