|
11 | 11 | use Saloon\CachePlugin\Tests\Fixtures\Connectors\CachedConnector; |
12 | 12 | use Saloon\CachePlugin\Tests\Fixtures\Requests\CachedPostRequest; |
13 | 13 | use Saloon\CachePlugin\Tests\Fixtures\Requests\CachedUserRequest; |
| 14 | +use Saloon\CachePlugin\Tests\Fixtures\Requests\BodyCacheKeyRequest; |
14 | 15 | use Saloon\CachePlugin\Tests\Fixtures\Requests\CachedConnectorRequest; |
15 | 16 | use Saloon\CachePlugin\Tests\Fixtures\Requests\AllowedCachedPostRequest; |
16 | 17 | use Saloon\CachePlugin\Tests\Fixtures\Requests\CustomKeyCachedUserRequest; |
|
186 | 187 | expect($responseC->isCached())->toBeFalse(); |
187 | 188 | }); |
188 | 189 |
|
| 190 | +test('body can be used in the cache key', function () { |
| 191 | + $mockClient = new MockClient([ |
| 192 | + MockResponse::make(['name' => 'Sam']), |
| 193 | + MockResponse::make(['name' => 'Gareth']), |
| 194 | + ]); |
| 195 | + |
| 196 | + $requestA = new BodyCacheKeyRequest; |
| 197 | + $requestA->body()->set([ |
| 198 | + 'name' => 'Sam', |
| 199 | + 'expiry' => '10 hours', |
| 200 | + ]); |
| 201 | + |
| 202 | + $responseA = TestConnector::make()->send($requestA, $mockClient); |
| 203 | + |
| 204 | + expect($responseA->isCached())->toBeFalse(); |
| 205 | + expect($responseA->json())->toEqual(['name' => 'Sam']); |
| 206 | + expect($responseA->status())->toEqual(200); |
| 207 | + |
| 208 | + $requestB = new BodyCacheKeyRequest; |
| 209 | + $requestB->body()->set([ |
| 210 | + 'name' => 'Sam', |
| 211 | + 'expiry' => '10 hours', |
| 212 | + ]); |
| 213 | + |
| 214 | + $responseB = TestConnector::make()->send($requestB, $mockClient); |
| 215 | + |
| 216 | + expect($responseB->isCached())->toBeTrue(); |
| 217 | + expect($responseB->json())->toEqual(['name' => 'Sam']); |
| 218 | + expect($responseB->status())->toEqual(200); |
| 219 | +}); |
| 220 | + |
189 | 221 | test('you will not receive a cached response if the response has expired', function () { |
190 | 222 | $mockClient = new MockClient([ |
191 | 223 | MockResponse::make(['name' => 'Sam']), |
|
0 commit comments