create([ 'archived_at' => now(), ]); $user = User::factory()->create(); WorkspaceMembership::factory()->create([ 'workspace_id' => (int) $workspace->getKey(), 'user_id' => (int) $user->getKey(), 'role' => 'owner', ]); $user->forceFill([ 'last_workspace_id' => (int) $workspace->getKey(), ])->save(); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $workspace->getKey()]); Livewire::test(ListWorkspaces::class) ->assertTableEmptyStateActionsExistInOrder(['create']) ->assertActionVisible('create') ->assertActionEnabled('create'); } public function test_spec090_disables_workspace_empty_state_create_cta_without_workspace_manage(): void { $workspace = Workspace::factory()->create([ 'archived_at' => now(), ]); $user = User::factory()->create(); WorkspaceMembership::factory()->create([ 'workspace_id' => (int) $workspace->getKey(), 'user_id' => (int) $user->getKey(), 'role' => 'manager', ]); $user->forceFill([ 'last_workspace_id' => (int) $workspace->getKey(), ])->save(); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $workspace->getKey()]); Livewire::test(ListWorkspaces::class) ->assertTableEmptyStateActionsExistInOrder(['create']) ->assertActionVisible('create') ->assertActionDisabled('create'); } public function test_spec090_shows_backup_schedule_empty_state_create_cta_for_users_with_manage_capability(): void { [$user, $tenant] = createUserWithTenant(role: 'owner'); $this->actingAs($user); $tenant->makeCurrent(); Filament::setTenant($tenant, true); Livewire::test(ListBackupSchedules::class) ->assertTableEmptyStateActionsExistInOrder(['create']) ->assertActionVisible('create') ->assertActionEnabled('create'); } public function test_spec090_disables_backup_schedule_empty_state_create_cta_without_manage_capability(): void { [$user, $tenant] = createUserWithTenant(role: 'readonly'); $this->actingAs($user); $tenant->makeCurrent(); Filament::setTenant($tenant, true); Livewire::test(ListBackupSchedules::class) ->assertTableEmptyStateActionsExistInOrder([]) ->assertActionHidden('create'); } }