|
4 | 4 | use Illuminate\Http\Client\RequestException;
|
5 | 5 | use Illuminate\Support\Facades\Http;
|
6 | 6 | use Morningtrain\Economic\Resources\Customer;
|
| 7 | +use Morningtrain\LaravelEconomic\Drivers\HttpEconomicDriver; |
7 | 8 |
|
8 | 9 | it('adds headers from env', function () {
|
9 | 10 | Http::fake([
|
|
63 | 64 |
|
64 | 65 | expect(Http::economic()->getOptions()['timeout'])->toBe(45);
|
65 | 66 | });
|
| 67 | + |
| 68 | +it('adds idempotency header key on POST if set', function () { |
| 69 | + Http::fake([ |
| 70 | + '*' => Http::response([]), |
| 71 | + ]); |
| 72 | + |
| 73 | + $driver = new HttpEconomicDriver(); |
| 74 | + |
| 75 | + $driver->post('https://restapi.e-conomic.com/invoice/1', [], 'idempotency-key'); |
| 76 | + |
| 77 | + Http::assertSent(function (Request $request) { |
| 78 | + return $request->hasHeader('Idempotency-Key', 'idempotency-key'); |
| 79 | + }); |
| 80 | +}); |
| 81 | + |
| 82 | +it('adds idempotency header key on PUT if set', function () { |
| 83 | + Http::fake([ |
| 84 | + '*' => Http::response([]), |
| 85 | + ]); |
| 86 | + |
| 87 | + $driver = new HttpEconomicDriver(); |
| 88 | + |
| 89 | + $driver->put('https://restapi.e-conomic.com/invoice/1', [], 'idempotency-key'); |
| 90 | + |
| 91 | + Http::assertSent(function (Request $request) { |
| 92 | + return $request->hasHeader('Idempotency-Key', 'idempotency-key'); |
| 93 | + }); |
| 94 | +}); |
| 95 | + |
| 96 | +it('does not add idempotency header key on PUT if set to Null', function () { |
| 97 | + Http::fake([ |
| 98 | + '*' => Http::response([]), |
| 99 | + ]); |
| 100 | + |
| 101 | + $driver = new HttpEconomicDriver(); |
| 102 | + |
| 103 | + $driver->put('https://restapi.e-conomic.com/invoice/1', [], null); |
| 104 | + |
| 105 | + Http::assertSent(function (Request $request) { |
| 106 | + return $request->hasHeader('Idempotency-Key') === false; |
| 107 | + }); |
| 108 | +}); |
0 commit comments