'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 (): void { $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'); });