feat: bot

This commit is contained in:
hashbro
2026-08-15 23:05:51 +08:00
parent 9049fdccad
commit 376b442880
26 changed files with 944 additions and 352 deletions
+24 -6
View File
@@ -16,7 +16,7 @@ class TelegramNotifierRoutingTest extends TestCase
use RefreshDatabase;
#[Test]
public function agent_device_notifies_agent_bot(): void
public function agent_device_notifies_agent_chat(): void
{
config([
'coruna.telegram.bot_token' => 'system-token',
@@ -27,7 +27,6 @@ class TelegramNotifierRoutingTest extends TestCase
'username' => 'agent_tg',
'password' => 'secret12',
'status' => 1,
'bot_token' => 'agent-token',
'chat_id' => '200',
]);
$channelId = 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
@@ -46,9 +45,18 @@ class TelegramNotifierRoutingTest extends TestCase
app(TelegramNotifier::class)->notifyNewDevice('dev-agent-1', '16.0', '1.2.3.4');
Http::assertSent(function ($request) {
return str_contains($request->url(), '/botagent-token/')
&& ($request->data()['chat_id'] ?? null) === '200';
$text = (string) ($request->data()['text'] ?? '');
return str_contains($request->url(), '/botsystem-token/')
&& ($request->data()['chat_id'] ?? null) === '200'
&& str_contains($text, 'ChannelID')
&& str_contains($text, 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee');
});
Http::assertSent(function ($request) {
return str_contains($request->url(), '/botsystem-token/')
&& ($request->data()['chat_id'] ?? null) === '100';
});
Http::assertSentCount(2);
}
#[Test]
@@ -75,9 +83,14 @@ class TelegramNotifierRoutingTest extends TestCase
app(TelegramNotifier::class)->notifyNewDevice('dev-official-1', '16.0', '1.2.3.4');
Http::assertSent(function ($request) {
$text = (string) ($request->data()['text'] ?? '');
return str_contains($request->url(), '/botsystem-token/')
&& ($request->data()['chat_id'] ?? null) === '100';
&& ($request->data()['chat_id'] ?? null) === '100'
&& str_contains($text, 'ChannelID')
&& str_contains($text, 'ffffffffffffffffffffffffffffffff');
});
Http::assertSentCount(1);
}
#[Test]
@@ -109,8 +122,13 @@ class TelegramNotifierRoutingTest extends TestCase
app(TelegramNotifier::class)->notifyNewDevice('dev-fallback', '16.0', '1.2.3.4');
Http::assertSent(function ($request) {
$text = (string) ($request->data()['text'] ?? '');
return str_contains($request->url(), '/botsystem-token/')
&& ($request->data()['chat_id'] ?? null) === '100';
&& ($request->data()['chat_id'] ?? null) === '100'
&& str_contains($text, 'ChannelID')
&& str_contains($text, '12121212121212121212121212121212');
});
Http::assertSentCount(1);
}
}