Files
alfa-bank-sdk/tests/Feature/Webhooks/WebhookTest.php
2026-01-18 23:53:31 +03:00

57 lines
1.8 KiB
PHP

<?php
declare(strict_types=1);
use Apoloz\AlfaBank\Webhooks\WebhookFactory;
use Apoloz\AlfaBank\Data\Webhooks\Payloads\BaasWebhookData;
use Apoloz\AlfaBank\Data\Webhooks\Payloads\SbpWebhookData;
test('can detect baas webhook', function () {
$payload = [
[
'object' => 'ul_transaction_default',
'actionType' => 'create',
'eventTime' => '2022-01-12T00:00:00',
'data' => [
'transactionId' => 'TX123',
'amount' => ['amount' => 100, 'currencyName' => 'RUR'],
'direction' => 'DEBIT',
'documentDate' => '2022-01-12',
'operationCode' => '01',
'paymentPurpose' => 'Test',
'uuid' => 'uuid-123'
]
]
];
expect(WebhookFactory::isBaas($payload))->toBeTrue();
$webhook = WebhookFactory::create($payload);
expect($webhook)->toBeInstanceOf(BaasWebhookData::class)
->and($webhook->object)->toBe('ul_transaction_default')
->and($webhook->data->transactionId)->toBe('TX123');
});
test('can detect sbp webhook', function () {
$payload = [
[
'object' => 'jp_sbp_incoming_payments',
'actionType' => 'update',
'data' => [
'qrcId' => 'QR123',
'nspkTransactionId' => 'NSPK123',
'amount' => 1000,
'currency' => 'RUR',
'timestamp' => '2024-11-26T09:09:32Z'
]
]
];
expect(WebhookFactory::isSbp($payload))->toBeTrue();
$webhook = WebhookFactory::create($payload);
expect($webhook)->toBeInstanceOf(SbpWebhookData::class)
->and($webhook->object)->toBe('jp_sbp_incoming_payments')
->and($webhook->data->qrcId)->toBe('QR123');
});