mirror of
https://github.com/usetrmnl/byos_laravel.git
synced 2026-01-13 15:07:49 +00:00
92 lines
2.9 KiB
PHP
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();
|
|
});
|