mirror of
https://github.com/HolgerHatGarKeineNode/einundzwanzig-app.git
synced 2026-06-11 02:50:29 +00:00
dc2b828777
- 🔍 Introduced `SearchMeetupsTool` to find existing meetups by name or city before creating new ones. - ☑️ Updated `CreateMeetupTool` description and logic to enforce pre-checks for existing meetups. - 🛠️ Adjusted `EinundzwanzigServer` to include `SearchMeetupsTool` in tools list. - ✅ Added feature tests to verify meetup search functionality and ensure duplication avoidance.
36 lines
1.2 KiB
PHP
36 lines
1.2 KiB
PHP
<?php
|
|
|
|
use App\Mcp\Servers\EinundzwanzigServer;
|
|
use App\Mcp\Tools\Search\SearchMeetupsTool;
|
|
use App\Models\City;
|
|
use App\Models\Meetup;
|
|
use App\Models\User;
|
|
|
|
it('finds an existing meetup by its name', function () {
|
|
Meetup::factory()->create(['name' => 'Einundzwanzig München']);
|
|
|
|
EinundzwanzigServer::actingAs(User::factory()->create())
|
|
->tool(SearchMeetupsTool::class, ['search' => 'münchen'])
|
|
->assertOk()
|
|
->assertSee('Einundzwanzig München');
|
|
});
|
|
|
|
it('finds an existing meetup by its city name', function () {
|
|
$city = City::factory()->create(['name' => 'Nürnberg']);
|
|
Meetup::factory()->create(['name' => 'Bitcoin Treff', 'city_id' => $city->id]);
|
|
|
|
EinundzwanzigServer::actingAs(User::factory()->create())
|
|
->tool(SearchMeetupsTool::class, ['search' => 'Nürnberg'])
|
|
->assertOk()
|
|
->assertSee('Bitcoin Treff');
|
|
});
|
|
|
|
it('returns no match for an unknown city so a new meetup can be proposed', function () {
|
|
Meetup::factory()->create(['name' => 'Einundzwanzig München']);
|
|
|
|
$response = EinundzwanzigServer::actingAs(User::factory()->create())
|
|
->tool(SearchMeetupsTool::class, ['search' => 'Gibtsnichtstadt']);
|
|
|
|
$response->assertOk()->assertDontSee('Einundzwanzig München');
|
|
});
|