40 lines
		
	
	
		
			971 B
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			971 B
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| namespace Tests\Lib;
 | |
| 
 | |
| use Illuminate\Testing\TestResponse;
 | |
| 
 | |
| trait MakesHttpCalls
 | |
| {
 | |
|     /**
 | |
|      * @param array<string, mixed> $filter
 | |
|      * @param array<string, mixed> $routeParams
 | |
|      */
 | |
|     public function callFilter(string $routeName, array $filter, array $routeParams = []): TestResponse
 | |
|     {
 | |
|         return $this->call('GET', $this->filterUrl($routeName, $filter, $routeParams));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @param array<string, mixed> $filter
 | |
|      * @param array<string, mixed> $routeParams
 | |
|      */
 | |
|     public function filterUrl(string $routeName, array $filter, array $routeParams = []): string
 | |
|     {
 | |
|         $params = [
 | |
|             'filter' => $this->filterString($filter),
 | |
|             ...$routeParams
 | |
|         ];
 | |
| 
 | |
|         return route($routeName, $params);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @param array<string, mixed> $filter
 | |
|      */
 | |
|     public function filterString(array $filter): string
 | |
|     {
 | |
|         return base64_encode(rawurlencode(json_encode($filter)));
 | |
|     }
 | |
| }
 |