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()
|
Membership::where($attributes)->active()->whereNotIn('member_id', $members)->get()
|
||||||
->each(fn ($membership) => MembershipDestroyAction::run($membership->id));
|
->each(fn ($membership) => MembershipDestroyAction::run($membership->id));
|
||||||
|
|
||||||
collect($members)
|
Member::whereIn('id', $members)->whereDoesntHave('memberships', fn ($q) => $q->where($attributes))->get()
|
||||||
->except(Membership::where($attributes)->active()->pluck('member_id'))
|
|
||||||
->map(fn ($memberId) => Member::findOrFail($memberId))
|
|
||||||
->each(fn ($member) => MembershipStoreAction::run(
|
->each(fn ($member) => MembershipStoreAction::run(
|
||||||
$member,
|
$member,
|
||||||
$activity,
|
$activity,
|
||||||
|
@ -65,7 +63,6 @@ class MassStoreAction
|
||||||
null,
|
null,
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
||||||
ResyncAction::dispatch();
|
ResyncAction::dispatch();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,16 @@ it('testItCreatesAMembership', function() {
|
||||||
MassStoreAction::run($group, $activity, $subactivity, [$member->id]);
|
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() {
|
it('cannot create membership when activity and subactivity doesnt belong together', function() {
|
||||||
$this->login()->loginNami();
|
$this->login()->loginNami();
|
||||||
$member = Member::factory()->defaults()->create();
|
$member = Member::factory()->defaults()->create();
|
||||||
|
|
Loading…
Reference in New Issue