All files / components/UCSBOrganizations UCSBOrganizationsForm.jsx

100% Statements 80/80
100% Branches 7/7
100% Functions 2/2
100% Lines 80/80

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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 1091x 1x 1x   21x 21x 21x 21x 21x 21x 21x 21x 21x 21x 21x 21x   21x   21x   21x 21x 21x 21x 21x 21x 21x 21x 21x 21x 21x 21x   21x 21x       21x 21x     21x 21x 21x 21x 21x 21x 21x 21x 21x 21x 21x 21x   21x 21x       21x 21x 21x 21x 21x 21x 21x 21x 21x 21x   21x 21x       21x 21x 21x 21x 21x 21x 21x 21x 21x 21x   21x 21x       21x 21x   21x 21x 21x 21x 21x         21x   1x  
import { Button, Form } from "react-bootstrap";
import { useForm } from "react-hook-form";
import { useNavigate } from "react-router";
 
function UCSBOrganizationsForm({
  initialContents,
  submitAction,
  buttonLabel = "Create",
}) {
  // Stryker disable all
  const {
    register,
    formState: { errors },
    handleSubmit,
  } = useForm({ defaultValues: initialContents || {} });
  // Stryker restore all
 
  const navigate = useNavigate();
 
  const testIdPrefix = "UCSBOrganizationsForm";
 
  return (
    <Form onSubmit={handleSubmit(submitAction)}>
        <Form.Group className="mb-3">
          <Form.Label htmlFor="orgCode">OrgCode</Form.Label>
          <Form.Control
            data-testid={testIdPrefix + "-orgCode"}
            id="orgCode"
            type="text"
            isInvalid={Boolean(errors.orgCode)}
          {...register("orgCode", {
            required: "OrgCode is required.",
          })}
          />
          <Form.Control.Feedback type="invalid">
          {errors.orgCode?.message}
        </Form.Control.Feedback>
        </Form.Group>
 
      <Form.Group className="mb-3">
        <Form.Label htmlFor="orgTranslationShort">
          OrgTranslationShort
        </Form.Label>
        <Form.Control
          data-testid={testIdPrefix + "-orgTranslationShort"}
          id="orgTranslationShort"
          type="text"
          isInvalid={Boolean(errors.orgTranslationShort)}
          {...register("orgTranslationShort", {
            required: "OrgTranslationShort is required.",
            maxLength: {
              value: 30,
              message: "Max length 30 characters",
            },
          })}
        />
        <Form.Control.Feedback type="invalid">
          {errors.orgTranslationShort?.message}
        </Form.Control.Feedback>
      </Form.Group>
 
      <Form.Group className="mb-3">
        <Form.Label htmlFor="orgTranslation">OrgTranslation</Form.Label>
        <Form.Control
          data-testid={testIdPrefix + "-orgTranslation"}
          id="orgTranslation"
          type="text"
          isInvalid={Boolean(errors.orgTranslation)}
          {...register("orgTranslation", {
            required: "OrgTranslation is required.",
          })}
        />
        <Form.Control.Feedback type="invalid">
          {errors.orgTranslation?.message}
        </Form.Control.Feedback>
      </Form.Group>
 
      <Form.Group className="mb-3">
        <Form.Label htmlFor="inactive">Inactive</Form.Label>
        <Form.Control
          data-testid={testIdPrefix + "-inactive"}
          id="inactive"
          type="boolean"
          isInvalid={Boolean(errors.inactive)}
          {...register("inactive", {
            required: "Inactive is required.",
          })}
        />
        <Form.Control.Feedback type="invalid">
          {errors.inactive?.message}
        </Form.Control.Feedback>
      </Form.Group>
 
      <Button type="submit" data-testid={testIdPrefix + "-submit"}>
        {buttonLabel}
      </Button>
      <Button
        variant="Secondary"
        onClick={() => navigate(-1)}
        data-testid={testIdPrefix + "-cancel"}
      >
        Cancel
      </Button>
    </Form>
  );
}
 
export default UCSBOrganizationsForm;