All files / components/Users RoleEmailForm.jsx

100% Statements 41/41
100% Branches 3/3
100% Functions 2/2
100% Lines 41/41

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 571x 1x 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   1x  
import { Button, Form } from "react-bootstrap";
import { useForm } from "react-hook-form";
import { useNavigate } from "react-router";
import React from "react";
 
function RoleEmailForm({ submitAction, buttonLabel = "Create" }) {
  // Stryker disable all
  const {
    register,
    formState: { errors },
    handleSubmit,
  } = useForm();
  // Stryker restore all
 
  const navigate = useNavigate();
 
  const testIdPrefix = "RoleEmailForm";
 
  // Stryker disable next-line Regex
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
 
  return (
    <Form onSubmit={handleSubmit(submitAction)}>
      <Form.Group className="mb-3">
        <Form.Label htmlFor="email">Email</Form.Label>
        <Form.Control
          // Stryker disable next-line all
          data-testid={testIdPrefix + "-email"}
          id="email"
          type="text"
          isInvalid={Boolean(errors.email)}
          {...register("email", {
            required: "Email is required.",
            pattern: emailRegex,
          })}
        />
        <Form.Control.Feedback type="invalid">
          {errors.email && "A valid email is required."}
        </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 RoleEmailForm;