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'),
 | |
|         ]);
 | |
|     }
 | |
| }
 |