Files
alfa-bank-sdk/tests/Feature/Webhooks/WebhookManagementTest.php
Anatoliy Poloz b15d29f8e9 fix(formating)
2026-01-28 03:36:26 +03:00

52 lines
1.7 KiB
PHP

<?php
use Apoloz\AlfaBank\Core\AlfaBankConnector;
use Apoloz\AlfaBank\Data\Webhooks\Subscriptions\WebhookSubscriptionRequestData;
use Apoloz\AlfaBank\Requests\Webhooks\CreateWebhookRequest;
use Apoloz\AlfaBank\Requests\Webhooks\DeleteWebhookRequest;
use Apoloz\AlfaBank\Requests\Webhooks\GetWebhooksRequest;
use Saloon\Http\Faking\MockResponse;
test('can list webhooks', function (): void {
$mockClient = new \Saloon\Http\Faking\MockClient([
GetWebhooksRequest::class => MockResponse::make([['id' => 'WH-1']], 200),
]);
$config = createTestConfig();
$connector = new AlfaBankConnector($config);
$connector->withMockClient($mockClient);
$response = $connector->send(new GetWebhooksRequest);
expect($response->status())->toBe(200)
->and($response->json('0.id'))->toBe('WH-1');
});
test('can create webhook', function (): void {
$mockClient = new \Saloon\Http\Faking\MockClient([
CreateWebhookRequest::class => MockResponse::make(['id' => 'WH-2'], 201),
]);
$config = createTestConfig();
$connector = new AlfaBankConnector($config);
$connector->withMockClient($mockClient);
$response = $connector->send(new CreateWebhookRequest(new WebhookSubscriptionRequestData('https://test.io', ['transactions'])));
expect($response->status())->toBe(201);
});
test('can delete webhook', function (): void {
$mockClient = new \Saloon\Http\Faking\MockClient([
DeleteWebhookRequest::class => MockResponse::make([], 204),
]);
$config = createTestConfig();
$connector = new AlfaBankConnector($config);
$connector->withMockClient($mockClient);
$response = $connector->send(new DeleteWebhookRequest('WH-1'));
expect($response->status())->toBe(204);
});