Add leader-based permissions to Meetup event tests and editable scope

- 🔒 Ensure leader users are required for Meetup event tests to simulate accurate permissions.
-  Add `editableBy` scope to `MeetupEvent` model for consistent editable event handling.
- 🛠️ Refactor `mine` API endpoint and MCP tool to leverage `editableBy` scope.
- 🧪 Update tests to verify leader-based accessibility for Meetup events.
This commit is contained in:
HolgerHatGarKeineNode
2026-06-17 20:05:39 +02:00
parent 7c142fb37a
commit dc1d679e4b
8 changed files with 61 additions and 15 deletions
+10 -5
View File
@@ -70,12 +70,14 @@ it('aborts meetups.edit with 403 when the user is neither creator nor super-admi
});
it('mounts meetups.create-edit-events for new event', function () {
actingAsUser();
$leader = actingAsUser();
$this->meetup->users()->syncWithoutDetaching([$leader->id => ['is_leader' => true]]);
Livewire::test('meetups.create-edit-events', ['meetup' => $this->meetup])->assertStatus(200);
});
it('mounts meetups.create-edit-events for existing event', function () {
actingAsUser();
$leader = actingAsUser();
$this->meetup->users()->syncWithoutDetaching([$leader->id => ['is_leader' => true]]);
Livewire::test('meetups.create-edit-events', [
'meetup' => $this->meetup,
'event' => $this->event,
@@ -83,7 +85,8 @@ it('mounts meetups.create-edit-events for existing event', function () {
});
it('does not crash with PropertyNotFoundException when startDate is set to null in series mode', function () {
actingAsUser();
$leader = actingAsUser();
$this->meetup->users()->syncWithoutDetaching([$leader->id => ['is_leader' => true]]);
Livewire::test('meetups.create-edit-events', ['meetup' => $this->meetup])
->set('seriesMode', true)
->set('endDate', '2026-10-27')
@@ -93,7 +96,8 @@ it('does not crash with PropertyNotFoundException when startDate is set to null
});
it('does not crash when endDate is set to null in series mode', function () {
actingAsUser();
$leader = actingAsUser();
$this->meetup->users()->syncWithoutDetaching([$leader->id => ['is_leader' => true]]);
Livewire::test('meetups.create-edit-events', ['meetup' => $this->meetup])
->set('seriesMode', true)
->set('endDate', null)
@@ -102,7 +106,8 @@ it('does not crash when endDate is set to null in series mode', function () {
});
it('does not crash when startTime is set to null', function () {
actingAsUser();
$leader = actingAsUser();
$this->meetup->users()->syncWithoutDetaching([$leader->id => ['is_leader' => true]]);
Livewire::test('meetups.create-edit-events', ['meetup' => $this->meetup])
->set('startTime', null)
->assertStatus(200)