Skip to content

Commit de38a88

Browse files
committed
✅ Add test for idempotency header
1 parent 9ccf2d5 commit de38a88

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

tests/Unit/DriverTest.php

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
use Illuminate\Http\Client\RequestException;
55
use Illuminate\Support\Facades\Http;
66
use Morningtrain\Economic\Resources\Customer;
7+
use Morningtrain\LaravelEconomic\Drivers\HttpEconomicDriver;
78

89
it('adds headers from env', function () {
910
Http::fake([
@@ -63,3 +64,45 @@
6364

6465
expect(Http::economic()->getOptions()['timeout'])->toBe(45);
6566
});
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

Comments
 (0)