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)));
 | 
						|
    }
 | 
						|
}
 |