chore: fix pint code style and add test config
Some checks failed
CI / tests (push) Failing after 1m22s

Add phpunit.xml and tests/Pest.php for standalone test execution.
Apply Laravel Pint formatting fixes across all source files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Claude 2026-02-23 03:50:07 +00:00
parent 7c941060a5
commit f751905f22
No known key found for this signature in database
GPG key ID: AF404715446AEB41
32 changed files with 118 additions and 74 deletions

View file

@ -4,11 +4,11 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Console;
use Illuminate\Console\Command;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Models\VersionRelease;
use Core\Mod\Uptelligence\Services\DiffAnalyzerService;
use Core\Mod\Uptelligence\Services\VendorStorageService;
use Illuminate\Console\Command;
class AnalyzeCommand extends Command
{

View file

@ -4,10 +4,10 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Console;
use Illuminate\Console\Command;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Services\AssetTrackerService;
use Core\Mod\Uptelligence\Services\VendorStorageService;
use Illuminate\Console\Command;
class CheckCommand extends Command
{

View file

@ -4,10 +4,10 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Console;
use Illuminate\Console\Command;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Services\AssetTrackerService;
use Core\Mod\Uptelligence\Services\VendorUpdateCheckerService;
use Illuminate\Console\Command;
/**
* Artisan command to check vendors and assets for upstream updates.

View file

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Console;
use Illuminate\Console\Command;
use Core\Mod\Uptelligence\Models\UpstreamTodo;
use Core\Mod\Uptelligence\Models\Vendor;
use Illuminate\Console\Command;
class IssuesCommand extends Command
{

View file

@ -4,9 +4,9 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Console;
use Illuminate\Console\Command;
use Core\Mod\Uptelligence\Models\UptelligenceDigest;
use Core\Mod\Uptelligence\Services\UptelligenceDigestService;
use Illuminate\Console\Command;
/**
* Send Uptelligence digest emails to subscribed users.

View file

@ -4,14 +4,14 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Controllers\Api;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Log;
use Core\Mod\Uptelligence\Jobs\ProcessUptelligenceWebhook;
use Core\Mod\Uptelligence\Models\UptelligenceWebhook;
use Core\Mod\Uptelligence\Models\UptelligenceWebhookDelivery;
use Core\Mod\Uptelligence\Services\WebhookReceiverService;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Log;
/**
* WebhookController - receives incoming vendor release webhooks.
@ -383,7 +383,7 @@ class WebhookController extends Controller
'error' => $validation,
]);
return response('Invalid payload structure: ' . $validation, 400);
return response('Invalid payload structure: '.$validation, 400);
}
return null;

View file

@ -4,15 +4,15 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Jobs;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Services\AssetTrackerService;
use Core\Mod\Uptelligence\Services\VendorUpdateCheckerService;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Services\AssetTrackerService;
use Core\Mod\Uptelligence\Services\VendorUpdateCheckerService;
/**
* Job to check vendors and assets for upstream updates.

View file

@ -4,15 +4,15 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Jobs;
use Core\Mod\Uptelligence\Models\UptelligenceWebhookDelivery;
use Core\Mod\Uptelligence\Notifications\NewReleaseDetected;
use Core\Mod\Uptelligence\Services\WebhookReceiverService;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
use Core\Mod\Uptelligence\Models\UptelligenceWebhookDelivery;
use Core\Mod\Uptelligence\Notifications\NewReleaseDetected;
use Core\Mod\Uptelligence\Services\WebhookReceiverService;
/**
* ProcessUptelligenceWebhook - async processing of incoming vendor webhooks.

View file

@ -4,11 +4,11 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Notifications;
use Core\Mod\Uptelligence\Models\Vendor;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
use Core\Mod\Uptelligence\Models\Vendor;
/**
* NewReleaseDetected - notification when a vendor releases a new version.

View file

@ -4,12 +4,12 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Notifications;
use Core\Mod\Uptelligence\Models\UptelligenceDigest;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Collection;
use Core\Mod\Uptelligence\Models\UptelligenceDigest;
/**
* SendUptelligenceDigest - email notification for vendor update summaries.

View file

@ -4,14 +4,14 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Services;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\RateLimiter;
use Core\Mod\Uptelligence\Models\AnalysisLog;
use Core\Mod\Uptelligence\Models\DiffCache;
use Core\Mod\Uptelligence\Models\UpstreamTodo;
use Core\Mod\Uptelligence\Models\VersionRelease;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\RateLimiter;
/**
* AI Analyzer Service - uses AI to analyse version releases and create todos.

View file

@ -5,12 +5,12 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Services;
use Carbon\Carbon;
use Core\Mod\Uptelligence\Models\Asset;
use Core\Mod\Uptelligence\Models\AssetVersion;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Process;
use Illuminate\Support\Facades\RateLimiter;
use Core\Mod\Uptelligence\Models\Asset;
use Core\Mod\Uptelligence\Models\AssetVersion;
/**
* Asset Tracker Service - monitors and updates package dependencies.

View file

@ -4,16 +4,16 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Services;
use Core\Mod\Uptelligence\Models\AnalysisLog;
use Core\Mod\Uptelligence\Models\DiffCache;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Models\VersionRelease;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Process;
use InvalidArgumentException;
use Core\Mod\Uptelligence\Models\AnalysisLog;
use Core\Mod\Uptelligence\Models\DiffCache;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Models\VersionRelease;
/**
* Diff Analyzer Service - analyses differences between vendor versions.

View file

@ -4,14 +4,14 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Services;
use Core\Mod\Uptelligence\Models\AnalysisLog;
use Core\Mod\Uptelligence\Models\UpstreamTodo;
use Core\Mod\Uptelligence\Models\Vendor;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\RateLimiter;
use InvalidArgumentException;
use Core\Mod\Uptelligence\Models\AnalysisLog;
use Core\Mod\Uptelligence\Models\UpstreamTodo;
use Core\Mod\Uptelligence\Models\Vendor;
/**
* Issue Generator Service - creates GitHub/Gitea issues from upstream todos.

View file

@ -4,10 +4,10 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Services;
use Illuminate\Support\Collection;
use Core\Mod\Uptelligence\Models\UpstreamTodo;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Models\VersionRelease;
use Illuminate\Support\Collection;
/**
* Upstream Plan Generator Service - creates agent plans from version release analysis.

View file

@ -4,13 +4,13 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Services;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
use Core\Mod\Uptelligence\Models\UpstreamTodo;
use Core\Mod\Uptelligence\Models\UptelligenceDigest;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Models\VersionRelease;
use Core\Mod\Uptelligence\Notifications\SendUptelligenceDigest;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
/**
* UptelligenceDigestService - generates and sends digest email notifications.

View file

@ -4,12 +4,12 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Services;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Models\VersionRelease;
use Illuminate\Contracts\Filesystem\Filesystem;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Models\VersionRelease;
use RuntimeException;
use Symfony\Component\Process\Process;

View file

@ -4,11 +4,11 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Services;
use Core\Mod\Uptelligence\Models\UpstreamTodo;
use Core\Mod\Uptelligence\Models\Vendor;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\RateLimiter;
use Core\Mod\Uptelligence\Models\UpstreamTodo;
use Core\Mod\Uptelligence\Models\Vendor;
/**
* Vendor Update Checker Service - checks upstream sources for new releases.

View file

@ -4,11 +4,11 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Services;
use Illuminate\Support\Facades\Log;
use Core\Mod\Uptelligence\Models\UptelligenceWebhook;
use Core\Mod\Uptelligence\Models\UptelligenceWebhookDelivery;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Models\VersionRelease;
use Illuminate\Support\Facades\Log;
/**
* WebhookReceiverService - processes incoming vendor release webhooks.

View file

@ -4,13 +4,13 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\View\Modal\Admin;
use Core\Mod\Uptelligence\Models\Asset;
use Illuminate\Contracts\View\View;
use Livewire\Attributes\Computed;
use Livewire\Attributes\Title;
use Livewire\Attributes\Url;
use Livewire\Component;
use Livewire\WithPagination;
use Core\Mod\Uptelligence\Models\Asset;
#[Title('Asset Manager')]
class AssetManager extends Component

View file

@ -4,14 +4,14 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\View\Modal\Admin;
use Illuminate\Contracts\View\View;
use Livewire\Attributes\Computed;
use Livewire\Attributes\Title;
use Livewire\Component;
use Core\Mod\Uptelligence\Models\Asset;
use Core\Mod\Uptelligence\Models\UpstreamTodo;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Models\VersionRelease;
use Illuminate\Contracts\View\View;
use Livewire\Attributes\Computed;
use Livewire\Attributes\Title;
use Livewire\Component;
#[Title('Uptelligence Dashboard')]
class Dashboard extends Component

View file

@ -4,15 +4,15 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\View\Modal\Admin;
use Core\Mod\Uptelligence\Models\DiffCache;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Models\VersionRelease;
use Illuminate\Contracts\View\View;
use Livewire\Attributes\Computed;
use Livewire\Attributes\Title;
use Livewire\Attributes\Url;
use Livewire\Component;
use Livewire\WithPagination;
use Core\Mod\Uptelligence\Models\DiffCache;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Models\VersionRelease;
#[Title('Diff Viewer')]
class DiffViewer extends Component

View file

@ -4,13 +4,13 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\View\Modal\Admin;
use Core\Mod\Uptelligence\Models\UptelligenceDigest;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Services\UptelligenceDigestService;
use Illuminate\Contracts\View\View;
use Livewire\Attributes\Computed;
use Livewire\Attributes\Title;
use Livewire\Component;
use Core\Mod\Uptelligence\Models\UptelligenceDigest;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Services\UptelligenceDigestService;
#[Title('Digest Preferences')]
class DigestPreferences extends Component

View file

@ -4,14 +4,14 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\View\Modal\Admin;
use Core\Mod\Uptelligence\Models\UpstreamTodo;
use Core\Mod\Uptelligence\Models\Vendor;
use Illuminate\Contracts\View\View;
use Livewire\Attributes\Computed;
use Livewire\Attributes\Title;
use Livewire\Attributes\Url;
use Livewire\Component;
use Livewire\WithPagination;
use Core\Mod\Uptelligence\Models\UpstreamTodo;
use Core\Mod\Uptelligence\Models\Vendor;
#[Title('Upstream Todos')]
class TodoList extends Component

View file

@ -4,14 +4,14 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\View\Modal\Admin;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Models\VersionRelease;
use Illuminate\Contracts\View\View;
use Livewire\Attributes\Computed;
use Livewire\Attributes\Title;
use Livewire\Attributes\Url;
use Livewire\Component;
use Livewire\WithPagination;
use Core\Mod\Uptelligence\Models\Vendor;
use Core\Mod\Uptelligence\Models\VersionRelease;
#[Title('Vendor Manager')]
class VendorManager extends Component

View file

@ -4,15 +4,15 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\View\Modal\Admin;
use Core\Mod\Uptelligence\Models\UptelligenceWebhook;
use Core\Mod\Uptelligence\Models\UptelligenceWebhookDelivery;
use Core\Mod\Uptelligence\Models\Vendor;
use Illuminate\Contracts\View\View;
use Livewire\Attributes\Computed;
use Livewire\Attributes\Title;
use Livewire\Attributes\Url;
use Livewire\Component;
use Livewire\WithPagination;
use Core\Mod\Uptelligence\Models\UptelligenceWebhook;
use Core\Mod\Uptelligence\Models\UptelligenceWebhookDelivery;
use Core\Mod\Uptelligence\Models\Vendor;
#[Title('Webhook Manager')]
class WebhookManager extends Component

39
phpunit.xml Normal file
View file

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
bootstrap="vendor/autoload.php"
colors="true"
cacheDirectory=".phpunit.cache"
executionOrder="random"
requireCoverageMetadata="false"
beStrictAboutCoverageMetadata="false"
beStrictAboutOutputDuringTests="true"
failOnRisky="true"
failOnWarning="true">
<testsuites>
<testsuite name="Feature">
<directory>tests/Feature</directory>
</testsuite>
<testsuite name="Unit">
<directory>tests/Unit</directory>
</testsuite>
</testsuites>
<source>
<include>
<directory>src</directory>
</include>
</source>
<php>
<env name="APP_ENV" value="testing"/>
<env name="APP_DEBUG" value="true"/>
<env name="APP_KEY" value="base64:Kx0qLJZJAQcDSFE2gMpuOlwrJcC6kXHM0j0KJdMGqzQ="/>
<env name="BCRYPT_ROUNDS" value="4"/>
<env name="CACHE_STORE" value="array"/>
<env name="DB_CONNECTION" value="sqlite"/>
<env name="DB_DATABASE" value=":memory:"/>
<env name="MAIL_MAILER" value="array"/>
<env name="QUEUE_CONNECTION" value="sync"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="TELESCOPE_ENABLED" value="false"/>
</php>
</phpunit>

View file

@ -1,6 +1,5 @@
<?php
use Illuminate\Support\Facades\Route;
use Core\Mod\Uptelligence\View\Modal\Admin\AssetManager;
use Core\Mod\Uptelligence\View\Modal\Admin\Dashboard;
use Core\Mod\Uptelligence\View\Modal\Admin\DiffViewer;
@ -8,6 +7,7 @@ use Core\Mod\Uptelligence\View\Modal\Admin\DigestPreferences;
use Core\Mod\Uptelligence\View\Modal\Admin\TodoList;
use Core\Mod\Uptelligence\View\Modal\Admin\VendorManager;
use Core\Mod\Uptelligence\View\Modal\Admin\WebhookManager;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------

View file

@ -8,8 +8,8 @@ declare(strict_types=1);
* Webhook endpoints for receiving vendor release notifications.
*/
use Illuminate\Support\Facades\Route;
use Core\Mod\Uptelligence\Controllers\Api\WebhookController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------

7
tests/Pest.php Normal file
View file

@ -0,0 +1,7 @@
<?php
declare(strict_types=1);
use Orchestra\Testbench\TestCase;
uses(TestCase::class)->in('Feature', 'Unit');

View file

@ -5,9 +5,7 @@ declare(strict_types=1);
namespace Core\Mod\Uptelligence\Tests\Unit;
use Core\Mod\Uptelligence\Controllers\Api\WebhookController;
use Core\Mod\Uptelligence\Models\UptelligenceWebhook;
use Core\Mod\Uptelligence\Services\WebhookReceiverService;
use Illuminate\Http\Request;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\Test;
use ReflectionClass;
@ -133,7 +131,7 @@ class WebhookPayloadValidationTest extends \Orchestra\Testbench\TestCase
// Create JSON with 35 levels of nesting (exceeds max depth of 32)
$nested = '"value"';
for ($i = 0; $i < 35; $i++) {
$nested = '{"level' . $i . '":' . $nested . '}';
$nested = '{"level'.$i.'":'.$nested.'}';
}
$result = $this->invokeMethod($this->controller, 'parseAndValidateJson', [$nested, 1]);

View file

@ -34,8 +34,8 @@ class WebhookSignatureVerificationTest extends \Orchestra\Testbench\TestCase
]);
$payload = '{"action":"published","release":{"tag_name":"v1.0.0"}}';
$validSignature = 'sha256=' . hash_hmac('sha256', $payload, 'test-secret-key');
$invalidSignature = 'sha256=' . hash_hmac('sha256', $payload, 'wrong-secret');
$validSignature = 'sha256='.hash_hmac('sha256', $payload, 'test-secret-key');
$invalidSignature = 'sha256='.hash_hmac('sha256', $payload, 'wrong-secret');
// Valid signature should pass
$this->assertTrue($webhook->verifySignature($payload, $validSignature));
@ -119,7 +119,7 @@ class WebhookSignatureVerificationTest extends \Orchestra\Testbench\TestCase
]);
$payload = '{"version":"2.0.0","event":"release"}';
$validSignature = 'sha256=' . hash_hmac('sha256', $payload, 'custom-secret-key');
$validSignature = 'sha256='.hash_hmac('sha256', $payload, 'custom-secret-key');
$this->assertTrue($webhook->verifySignature($payload, $validSignature));
$this->assertFalse($webhook->verifySignature($payload, 'sha256=invalid'));
@ -177,9 +177,9 @@ class WebhookSignatureVerificationTest extends \Orchestra\Testbench\TestCase
$payload = '{"test":"payload"}';
// Both old and new secrets should work during grace period
$newSignature = 'sha256=' . hash_hmac('sha256', $payload, 'new-secret');
$oldSignature = 'sha256=' . hash_hmac('sha256', $payload, 'old-secret');
$wrongSignature = 'sha256=' . hash_hmac('sha256', $payload, 'wrong-secret');
$newSignature = 'sha256='.hash_hmac('sha256', $payload, 'new-secret');
$oldSignature = 'sha256='.hash_hmac('sha256', $payload, 'old-secret');
$wrongSignature = 'sha256='.hash_hmac('sha256', $payload, 'wrong-secret');
$this->assertTrue($webhook->verifySignature($payload, $newSignature));
$this->assertTrue($webhook->verifySignature($payload, $oldSignature));
@ -202,8 +202,8 @@ class WebhookSignatureVerificationTest extends \Orchestra\Testbench\TestCase
$payload = '{"test":"payload"}';
$newSignature = 'sha256=' . hash_hmac('sha256', $payload, 'new-secret');
$oldSignature = 'sha256=' . hash_hmac('sha256', $payload, 'old-secret');
$newSignature = 'sha256='.hash_hmac('sha256', $payload, 'new-secret');
$oldSignature = 'sha256='.hash_hmac('sha256', $payload, 'old-secret');
$this->assertTrue($webhook->verifySignature($payload, $newSignature));
$this->assertFalse($webhook->verifySignature($payload, $oldSignature));
@ -257,7 +257,7 @@ class WebhookSignatureVerificationTest extends \Orchestra\Testbench\TestCase
// Payload with null bytes and binary data
$binaryPayload = "binary\x00payload\xff\xfe";
$validSignature = 'sha256=' . hash_hmac('sha256', $binaryPayload, 'binary-secret');
$validSignature = 'sha256='.hash_hmac('sha256', $binaryPayload, 'binary-secret');
$this->assertTrue($webhook->verifySignature($binaryPayload, $validSignature));
}
@ -274,7 +274,7 @@ class WebhookSignatureVerificationTest extends \Orchestra\Testbench\TestCase
]);
$emptyPayload = '';
$validSignature = 'sha256=' . hash_hmac('sha256', $emptyPayload, 'empty-payload-secret');
$validSignature = 'sha256='.hash_hmac('sha256', $emptyPayload, 'empty-payload-secret');
$this->assertTrue($webhook->verifySignature($emptyPayload, $validSignature));
}
@ -291,8 +291,8 @@ class WebhookSignatureVerificationTest extends \Orchestra\Testbench\TestCase
]);
// 1MB payload
$largePayload = str_repeat('{"data":"' . str_repeat('x', 1000) . '"}', 1000);
$validSignature = 'sha256=' . hash_hmac('sha256', $largePayload, 'large-payload-secret');
$largePayload = str_repeat('{"data":"'.str_repeat('x', 1000).'"}', 1000);
$validSignature = 'sha256='.hash_hmac('sha256', $largePayload, 'large-payload-secret');
$this->assertTrue($webhook->verifySignature($largePayload, $validSignature));
}