Migrated endpoints from user to member; Renamed membership to member

This commit is contained in:
Constantin Graf
2024-05-13 19:50:50 +02:00
parent ba335b4f05
commit b2365e2778
64 changed files with 853 additions and 456 deletions

View File

@@ -5,7 +5,8 @@ declare(strict_types=1);
namespace Tests\Feature;
use App\Enums\Role;
use App\Models\Membership;
use App\Models\Member;
use App\Models\Organization;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
@@ -19,6 +20,7 @@ class CreateTeamTest extends TestCase
// Arrange
$user = User::factory()->withPersonalOrganization()->create();
$this->actingAs($user);
sleep(1);
// Act
$response = $this->post('/teams', [
@@ -26,10 +28,13 @@ class CreateTeamTest extends TestCase
]);
// Assert
$newOrganization = $user->fresh()->ownedTeams()->latest('id')->first();
$this->assertCount(2, $user->fresh()->ownedTeams);
$this->assertEquals('Test Organization', $newOrganization->name);
$member = Membership::query()->whereBelongsTo($user, 'user')->whereBelongsTo($newOrganization, 'organization')->firstOrFail();
/** @var Organization|null $newOrganization */
$ownedTeams = $user->fresh()->ownedTeams;
$this->assertCount(2, $ownedTeams);
$this->assertTrue($ownedTeams->contains('name', 'Test Organization'));
$newOrganization = $ownedTeams->firstWhere('name', 'Test Organization');
/** @var Member $member */
$member = Member::query()->whereBelongsTo($user, 'user')->whereBelongsTo($newOrganization, 'organization')->firstOrFail();
$this->assertSame(Role::Owner->value, $member->role);
}
}

View File

@@ -4,6 +4,8 @@ declare(strict_types=1);
namespace Tests\Feature;
use App\Enums\Role;
use App\Models\Member;
use App\Models\TimeEntry;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
@@ -62,13 +64,13 @@ class InviteTeamMemberTest extends TestCase
$existingUser = User::factory()->create([
'is_placeholder' => true,
]);
$user->currentTeam->users()->attach($existingUser, ['role' => 'employee']);
$user->currentTeam->users()->attach($existingUser, ['role' => Role::Employee->value]);
$this->actingAs($user);
// Act
$response = $this->post('/teams/'.$user->currentTeam->id.'/members', [
'email' => $existingUser->email,
'role' => 'employee',
'role' => Role::Employee->value,
]);
// Assert
@@ -103,7 +105,7 @@ class InviteTeamMemberTest extends TestCase
$user = User::factory()->withPersonalOrganization()->create();
$invitation = $owner->currentTeam->teamInvitations()->create([
'email' => $user->email,
'role' => 'employee',
'role' => Role::Employee->value,
]);
$this->actingAs($user);
@@ -126,11 +128,11 @@ class InviteTeamMemberTest extends TestCase
{
// Arrange
Mail::fake();
$placeholder = User::factory()->withPersonalOrganization()->placeholder()->create();
$placeholder = User::factory()->placeholder()->create();
$owner = User::factory()->withPersonalOrganization()->create();
$owner->currentTeam->users()->attach($placeholder, ['role' => 'employee']);
$timeEntries = TimeEntry::factory()->forOrganization($owner->currentTeam)->forUser($placeholder)->createMany(5);
$placeholderMember = Member::factory()->forOrganization($owner->currentTeam)->forUser($placeholder)->create();
$timeEntries = TimeEntry::factory()->forOrganization($owner->currentTeam)->forMember($placeholderMember)->createMany(5);
$user = User::factory()->withPersonalOrganization()->create([
'email' => $placeholder->email,
@@ -138,7 +140,7 @@ class InviteTeamMemberTest extends TestCase
$invitation = $owner->currentTeam->teamInvitations()->create([
'email' => $user->email,
'role' => 'employee',
'role' => Role::Employee->value,
]);
$this->actingAs($user);
@@ -167,7 +169,7 @@ class InviteTeamMemberTest extends TestCase
$user = User::factory()->withPersonalOrganization()->create();
$invitation = $owner->currentTeam->teamInvitations()->create([
'email' => 'firstname.lastname@mail.test',
'role' => 'employee',
'role' => Role::Employee->value,
]);
$this->actingAs($user);

View File

@@ -5,7 +5,7 @@ declare(strict_types=1);
namespace Tests\Feature;
use App\Enums\Role;
use App\Models\Membership;
use App\Models\Member;
use App\Models\User;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Testing\RefreshDatabase;
@@ -58,7 +58,7 @@ class RegistrationTest extends TestCase
$this->assertSame('UTC', $user->timezone);
$organization = $user->organizations()->firstOrFail();
$this->assertSame(true, $organization->personal_team);
$member = Membership::query()->whereBelongsTo($user, 'user')->whereBelongsTo($organization, 'organization')->firstOrFail();
$member = Member::query()->whereBelongsTo($user, 'user')->whereBelongsTo($organization, 'organization')->firstOrFail();
$this->assertSame(Role::Owner->value, $member->role);
}

View File

@@ -25,12 +25,12 @@ class UpdateTeamMemberRoleTest extends TestCase
// Act
$response = $this->put('/teams/'.$user->currentTeam->id.'/members/'.$otherUser->id, [
'role' => 'employee',
'role' => Role::Employee->value,
]);
// Assert
$this->assertTrue($otherUser->fresh()->hasTeamRole(
$user->currentTeam->fresh(), 'employee'
$user->currentTeam->fresh(), Role::Employee->value,
));
}
@@ -88,7 +88,7 @@ class UpdateTeamMemberRoleTest extends TestCase
// Act
$response = $this->put('/teams/'.$user->currentTeam->id.'/members/'.$otherUser->id, [
'role' => 'employee',
'role' => Role::Employee->value,
]);
// Assert