53 lines
1.5 KiB
PHP
53 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace Tests\Feature\Membership;
|
|
|
|
use App\Activity;
|
|
use App\Group;
|
|
use App\Member\Member;
|
|
use App\Member\Membership;
|
|
use App\Subactivity;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
use Tests\RequestFactories\MembershipRequestFactory;
|
|
use Tests\TestCase;
|
|
|
|
class UpdateTest extends TestCase
|
|
{
|
|
use DatabaseTransactions;
|
|
|
|
public function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
|
|
Carbon::setTestNow(Carbon::parse('2022-02-03 03:00:00'));
|
|
$this->login()->loginNami();
|
|
}
|
|
|
|
public function testItUpdatesAMembership(): void
|
|
{
|
|
$this->withoutExceptionHandling();
|
|
$activity = Activity::factory()->hasAttached(Subactivity::factory())->create();
|
|
$member = Member::factory()
|
|
->defaults()
|
|
->has(Membership::factory()->for($activity)->for($activity->subactivities->first()))
|
|
->for(Group::factory()->inNami(1400))
|
|
->inNami(6)
|
|
->create();
|
|
$membership = $member->memberships->first();
|
|
|
|
$response = $this->from('/member')->patch(
|
|
"/membership/{$membership->id}",
|
|
MembershipRequestFactory::new()->promise(now())->in($membership->activity, $membership->subactivity)->create()
|
|
);
|
|
|
|
$response->assertOk();
|
|
$this->assertDatabaseHas('memberships', [
|
|
'member_id' => $member->id,
|
|
'activity_id' => $activity->id,
|
|
'subactivity_id' => $activity->subactivities->first()->id,
|
|
'promised_at' => now()->format('Y-m-d'),
|
|
]);
|
|
}
|
|
}
|