byos_laravel/tests/Unit/Notifications/WebhookMessageTest.php
Benjamin Nussbaum 42b515e322
Some checks are pending
tests / ci (push) Waiting to run
test: improve coverage
2025-09-24 09:05:22 +02:00

92 lines
2.9 KiB
PHP

<?php
declare(strict_types=1);
use App\Notifications\Messages\WebhookMessage;
test('webhook message can be created with static method', function () {
$message = WebhookMessage::create('test data');
expect($message)->toBeInstanceOf(WebhookMessage::class);
});
test('webhook message can be created with constructor', function () {
$message = new WebhookMessage('test data');
expect($message)->toBeInstanceOf(WebhookMessage::class);
});
test('webhook message can set query parameters', function () {
$message = WebhookMessage::create()
->query(['param1' => 'value1', 'param2' => 'value2']);
expect($message->toArray()['query'])->toBe(['param1' => 'value1', 'param2' => 'value2']);
});
test('webhook message can set data', function () {
$data = ['key' => 'value', 'nested' => ['array' => 'data']];
$message = WebhookMessage::create()
->data($data);
expect($message->toArray()['data'])->toBe($data);
});
test('webhook message can add headers', function () {
$message = WebhookMessage::create()
->header('X-Custom-Header', 'custom-value')
->header('Authorization', 'Bearer token');
$headers = $message->toArray()['headers'];
expect($headers['X-Custom-Header'])->toBe('custom-value');
expect($headers['Authorization'])->toBe('Bearer token');
});
test('webhook message can set user agent', function () {
$message = WebhookMessage::create()
->userAgent('Test App/1.0');
$headers = $message->toArray()['headers'];
expect($headers['User-Agent'])->toBe('Test App/1.0');
});
test('webhook message can set verify option', function () {
$message = WebhookMessage::create()
->verify(true);
expect($message->toArray()['verify'])->toBeTrue();
});
test('webhook message verify defaults to false', function () {
$message = WebhookMessage::create();
expect($message->toArray()['verify'])->toBeFalse();
});
test('webhook message can chain methods', function () {
$message = WebhookMessage::create(['initial' => 'data'])
->query(['param' => 'value'])
->data(['updated' => 'data'])
->header('X-Test', 'header')
->userAgent('Test Agent')
->verify(true);
$array = $message->toArray();
expect($array['query'])->toBe(['param' => 'value']);
expect($array['data'])->toBe(['updated' => 'data']);
expect($array['headers']['X-Test'])->toBe('header');
expect($array['headers']['User-Agent'])->toBe('Test Agent');
expect($array['verify'])->toBeTrue();
});
test('webhook message toArray returns correct structure', function () {
$message = WebhookMessage::create(['test' => 'data']);
$array = $message->toArray();
expect($array)->toHaveKeys(['query', 'data', 'headers', 'verify']);
expect($array['query'])->toBeNull();
expect($array['data'])->toBe(['test' => 'data']);
expect($array['headers'])->toBeNull();
expect($array['verify'])->toBeFalse();
});