-
-
Notifications
You must be signed in to change notification settings - Fork 120
Expand file tree
/
Copy pathGlobalMockClientTest.php
More file actions
60 lines (42 loc) · 1.6 KB
/
GlobalMockClientTest.php
File metadata and controls
60 lines (42 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
declare(strict_types=1);
use Saloon\Http\Faking\MockClient;
use Saloon\Http\Faking\MockResponse;
use Saloon\Tests\Fixtures\Requests\UserRequest;
use Saloon\Tests\Fixtures\Connectors\TestConnector;
afterEach(function () {
MockClient::destroyGlobal();
});
test('can create a global mock client', function () {
$mockClient = MockClient::global([
MockResponse::make(['name' => 'Sam']),
]);
expect($mockClient)->toBeInstanceOf(MockClient::class);
expect(MockClient::getGlobal())->toBe($mockClient);
$connector = new TestConnector;
$response = $connector->send(new UserRequest);
expect($response->isMocked())->toBeTrue();
expect($response->json())->toEqual(['name' => 'Sam']);
$mockClient->assertSent(UserRequest::class);
});
test('the mock client can be destroyed', function () {
$mockClient = MockClient::global();
expect(MockClient::getGlobal())->toBe($mockClient);
MockClient::destroyGlobal();
expect(MockClient::getGlobal())->toBeNull();
});
test('a local mock client is given priority over the global mock client', function () {
MockClient::global([
MockResponse::make(['name' => 'Sam']),
]);
$localMockClient = new MockClient([
MockResponse::make(['name' => 'Taylor']),
]);
$connector = new TestConnector;
$connector->withMockClient($localMockClient);
$response = $connector->send(new UserRequest);
expect($response->isMocked())->toBeTrue();
expect($response->json())->toEqual(['name' => 'Taylor']);
$localMockClient->assertSentCount(1);
MockClient::global()->assertNothingSent();
});