All files / components/RequestType RequestTypeForm.jsx

100% Statements 55/55
100% Branches 4/4
100% Functions 2/2
100% Lines 55/55

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 791x 1x 1x   23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x   23x   23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x             23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x   23x 23x           23x 23x 23x 23x   23x 23x 23x 23x 23x             23x   1x  
import { Button, Form, Row, Col } from "react-bootstrap";
import { useForm } from "react-hook-form";
import { useNavigate } from "react-router";
 
function RequestTypeForm({
  initialContents,
  submitAction,
  buttonLabel = "Create",
}) {
  // Stryker disable all
  const {
    register,
    formState: { errors },
    handleSubmit,
  } = useForm({ defaultValues: initialContents || {} });
  // Stryker restore all
 
  const navigate = useNavigate();
 
  return (
    <Form onSubmit={handleSubmit(submitAction)}>
      <Row>
        {initialContents && (
          <Col>
            <Form.Group className="mb-3">
              <Form.Label htmlFor="id">Id</Form.Label>
              <Form.Control
                data-testid="RequestTypeForm-id"
                id="id"
                type="text"
                {...register("id")}
                value={initialContents.id}
                disabled
              />
            </Form.Group>
          </Col>
        )}
      </Row>
 
      <Row>
        <Col>
          <Form.Group className="mb-3">
            <Form.Label htmlFor="requestType">Request Type</Form.Label>
            <Form.Control
              data-testid="RequestTypeForm-requestType"
              id="requestType"
              type="text"
              isInvalid={Boolean(errors.requestType)}
              {...register("requestType", {
                required: true,
              })}
            />
            <Form.Control.Feedback type="invalid">
              {errors.requestType && "requestType is required."}
            </Form.Control.Feedback>
          </Form.Group>
        </Col>
      </Row>
 
      <Row>
        <Col>
          <Button type="submit" data-testid="RequestTypeForm-submit">
            {buttonLabel}
          </Button>
          <Button
            variant="Secondary"
            onClick={() => navigate(-1)}
            data-testid="RequestTypeForm-cancel"
          >
            Cancel
          </Button>
        </Col>
      </Row>
    </Form>
  );
}
 
export default RequestTypeForm;