Add organization members management components and tests

- Implemented `OrganizationMembersContent`, `OrganizationMembersTable`, and `AddMemberDialog` components for organization members management.
- Added unit tests for `OrganizationMembersContent` and `OrganizationMembersTable`, covering rendering, state handling, and edge cases.
- Enhanced `useOrganizationMembers` and `useGetOrganization` hooks to support members list and pagination data integration.
- Updated E2E tests to include organization members page interactions and improved reliability.
This commit is contained in:
Felipe Cardoso
2025-11-06 21:57:57 +01:00
parent dde4a5979d
commit 4420756741
12 changed files with 1445 additions and 137 deletions

View File

@@ -0,0 +1,43 @@
/**
* Admin Organization Members Page
* Displays and manages members of a specific organization
* Protected by AuthGuard in layout with requireAdmin=true
*/
/* istanbul ignore next - Next.js type import for metadata */
import type { Metadata } from 'next';
import Link from 'next/link';
import { ArrowLeft } from 'lucide-react';
import { Button } from '@/components/ui/button';
import { OrganizationMembersContent } from '@/components/admin/organizations/OrganizationMembersContent';
/* istanbul ignore next - Next.js metadata, not executable code */
export const metadata: Metadata = {
title: 'Organization Members',
};
interface PageProps {
params: {
id: string;
};
}
export default function OrganizationMembersPage({ params }: PageProps) {
return (
<div className="container mx-auto px-6 py-8">
<div className="space-y-6">
{/* Back Button */}
<div className="flex items-center gap-4">
<Link href="/admin/organizations">
<Button variant="outline" size="icon" aria-label="Back to Organizations">
<ArrowLeft className="h-4 w-4" aria-hidden="true" />
</Button>
</Link>
</div>
{/* Organization Members Content */}
<OrganizationMembersContent organizationId={params.id} />
</div>
</div>
);
}