All files / pages/UCSBOrganization UCSBOrganizationIndexPage.jsx

100% Statements 35/35
100% Branches 9/9
100% Functions 2/2
100% Lines 35/35

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 471x 1x   1x 1x 1x 1x   1x 24x   24x 24x 24x 24x 24x 24x 24x     24x 19x 5x 3x 24x   24x 24x 3x 3x 3x 3x 3x     3x 24x 24x 24x 24x 24x 24x       24x  
import React from "react";
import { useBackend } from "main/utils/useBackend";
 
import BasicLayout from "main/layouts/BasicLayout/BasicLayout";
import UCSBOrganizationTable from "main/components/UCSBOrganization/UCSBOrganizationTable";
import { Button } from "react-bootstrap";
import { useCurrentUser, hasRole } from "main/utils/useCurrentUser";
 
export default function UCSBOrganizationIndexPage() {
  const currentUser = useCurrentUser();
 
  const { data: organizations } = useBackend(
    // Stryker disable next-line all : don't test internal caching of React Query
    ["/api/ucsborganizations/all"],
    // Stryker disable next-line all : HTTP method and URL are tested elsewhere
    { method: "GET", url: "/api/ucsborganizations/all" },
    // Stryker disable next-line all : don't test default value of empty list
    [],
  );
 
  const rows = Array.isArray(organizations)
    ? organizations
    : Array.isArray(organizations?.content)
    ? organizations.content
    : [];
 
  const createButton = () =>
    hasRole(currentUser, "ROLE_ADMIN") ? (
      <Button
        variant="primary"
        href="/ucsborganization/create"
        style={{ float: "right" }}
      >
        Create UCSBOrganization
      </Button>
    ) : null;
  return (
    <BasicLayout>
      <div className="pt-2">
        {createButton()}
        <h1>UCSBOrganization</h1>
        <UCSBOrganizationTable organizations={rows} currentUser={currentUser} />
      </div>
    </BasicLayout>
  );
}