Fix MassStoreAction
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
5a2707ccac
commit
890201817f
|
@ -54,9 +54,7 @@ class MassStoreAction
|
|||
Membership::where($attributes)->active()->whereNotIn('member_id', $members)->get()
|
||||
->each(fn ($membership) => MembershipDestroyAction::run($membership->id));
|
||||
|
||||
collect($members)
|
||||
->except(Membership::where($attributes)->active()->pluck('member_id'))
|
||||
->map(fn ($memberId) => Member::findOrFail($memberId))
|
||||
Member::whereIn('id', $members)->whereDoesntHave('memberships', fn ($q) => $q->where($attributes))->get()
|
||||
->each(fn ($member) => MembershipStoreAction::run(
|
||||
$member,
|
||||
$activity,
|
||||
|
@ -65,7 +63,6 @@ class MassStoreAction
|
|||
null,
|
||||
));
|
||||
|
||||
|
||||
ResyncAction::dispatch();
|
||||
});
|
||||
}
|
||||
|
|
|
@ -48,6 +48,16 @@ it('testItCreatesAMembership', function() {
|
|||
MassStoreAction::run($group, $activity, $subactivity, [$member->id]);
|
||||
});
|
||||
|
||||
it('doesnt create a membership that already exists', function() {
|
||||
MembershipDestroyAction::partialMock()->shouldReceive('handle')->never();
|
||||
MembershipStoreAction::partialMock()->shouldReceive('handle')->never();
|
||||
$member = Member::factory()->defaults()
|
||||
->has(Membership::factory()->in('Leiter*in', 10, 'Rover', 11)->inNami(55))
|
||||
->create();
|
||||
|
||||
MassStoreAction::run($member->memberships->first()->group, $member->memberships->first()->activity, $member->memberships->first()->subactivity, [$member->id]);
|
||||
});
|
||||
|
||||
it('cannot create membership when activity and subactivity doesnt belong together', function() {
|
||||
$this->login()->loginNami();
|
||||
$member = Member::factory()->defaults()->create();
|
||||
|
|
Loading…
Reference in New Issue