fix(discord): only send notifications in production
Prevent Discord release notifications from being sent in non-production environments, avoiding accidental notifications during development and testing. Added unit tests to verify the behavior.
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Unit;
|
||||
|
||||
use App\Jobs\DiscordReleaseNotification;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Tests\TestCase;
|
||||
|
||||
class DiscordReleaseNotificationTest extends TestCase
|
||||
{
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
Http::fake();
|
||||
config([
|
||||
'discord-alerts.webhook_urls.default' => 'https://discord.com/api/webhooks/test/123',
|
||||
]);
|
||||
}
|
||||
|
||||
public function test_it_does_not_send_outside_production(): void
|
||||
{
|
||||
(new DiscordReleaseNotification('some-slug', 'release'))->handle();
|
||||
|
||||
Http::assertNothingSent();
|
||||
}
|
||||
|
||||
public function test_it_sends_in_production(): void
|
||||
{
|
||||
app()->instance('env', 'production');
|
||||
|
||||
(new DiscordReleaseNotification('some-slug', 'release'))->handle();
|
||||
|
||||
Http::assertSent(function ($request) {
|
||||
return str_contains($request->url(), 'https://discord.com/api/webhooks/test/123');
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user