All files / components/UCSBDiningCommonsMenuItem UCSBDiningCommonsMenuItemTable.jsx

100% Statements 48/48
100% Branches 4/4
100% Functions 3/3
100% Lines 48/48

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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 611x 1x 1x 1x 1x 1x         1x 13x   13x 1x 1x   13x 13x 13x 13x 13x   13x   13x 13x 2x 2x   13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x   13x 7x 7x 7x   13x 13x 13x 13x   13x  
import React from "react";
import OurTable, { ButtonColumn } from "main/components/OurTable";
import { useBackendMutation } from "main/utils/useBackend";
import { useNavigate } from "react-router";
import { hasRole } from "main/utils/useCurrentUser";
import {
  cellToAxiosParamsDelete,
  onDeleteSuccess,
} from "main/utils/UCSBDiningCommonsMenuItemUtils";
 
export default function UCSBDiningCommonsMenuItemTable({ menuItems, currentUser }) {
  const navigate = useNavigate();
 
  const editCallback = (cell) => {
    navigate(`/ucsbdiningcommonsmenuitem/edit/${cell.row.original.id}`);
  };
 
  // Stryker disable all : hard to test for query caching
  const deleteMutation = useBackendMutation(
    cellToAxiosParamsDelete,
    { onSuccess: onDeleteSuccess },
    ["/api/ucsb-dining-commons-menu-items/all"]
  );
  // Stryker restore all
 
  // Stryker disable next-line all : TODO try to make a good test for this
  const deleteCallback = async (cell) => {
    deleteMutation.mutate(cell);
  };
 
  const columns = [
    {
      header: "id",
      accessorKey: "id"
    },
    {
      header: "Dining Commons Code",
      accessorKey: "diningCommonsCode"
    },
    {
      header: "Name",
      accessorKey: "name"
    },
    {
      header: "Station",
      accessorKey: "station"
    }
  ];
 
  if (hasRole(currentUser, "ROLE_ADMIN")) {
    columns.push(ButtonColumn("Edit", "primary", editCallback, "UCSBDiningCommonsMenuItemTable"));
    columns.push(ButtonColumn("Delete", "danger", deleteCallback, "UCSBDiningCommonsMenuItemTable"));
  }
 
  return <OurTable
    data={menuItems}
    columns={columns}
    testid={"UCSBDiningCommonsMenuItemTable"}
  />;
}