policy = new SocialAccountPolicy; }); test('members of the current workspace can view a social account', function () { $user = User::factory()->create(); $workspace = Workspace::factory()->create(['user_id' => $user->id]); $workspace->members()->attach($user->id, ['role' => Role::Member->value]); $user->update(['current_workspace_id' => $workspace->id]); $account = SocialAccount::factory()->create(['workspace_id' => $workspace->id]); expect($this->policy->view($user->fresh(), $account))->toBeTrue(); }); test('cross-workspace social account lookups deny as not found', function () { $user = User::factory()->create(); $workspace = Workspace::factory()->create(['user_id' => $user->id]); $workspace->members()->attach($user->id, ['role' => Role::Member->value]); $user->update(['current_workspace_id' => $workspace->id]); $otherWorkspace = Workspace::factory()->create(); $account = SocialAccount::factory()->create(['workspace_id' => $otherWorkspace->id]); $result = $this->policy->view($user->fresh(), $account); expect($result)->toBeInstanceOf(Response::class) ->and($result->status())->toBe(404); });