All files / components/Courses UpdateInstructorForm.jsx

100% Statements 38/38
100% Branches 3/3
100% Functions 1/1
100% Lines 38/38

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 511x 1x   1x 31x 31x 31x 31x 31x 31x 31x 31x   31x 31x 31x 31x 31x 31x 31x 31x 31x   31x 31x 31x 31x 31x 31x 31x 31x 31x   31x 31x   31x       31x 31x 31x 31x 31x         31x  
import { Button, Form } from "react-bootstrap";
import { useForm } from "react-hook-form";
 
export default function UpdateInstructorForm({
  initialContents,
  handleUpdateInstructor,
}) {
  const {
    register,
    formState: { errors },
    handleSubmit,
  } = useForm({ defaultValues: initialContents || {} });
 
  return (
    <Form onSubmit={handleSubmit(handleUpdateInstructor)}>
      <Form.Group>
        <Form.Label htmlFor="courseName">Course Name</Form.Label>
        <Form.Control
          id="courseName"
          type="text"
          disabled
          {...register("courseName")}
        />
        <Form.Label htmlFor="instructorEmail">New Instructor Email</Form.Label>
        <Form.Control
          data-testid="update-instructor-email-input"
          id="instructorEmail"
          type="email"
          isInvalid={Boolean(errors.instructorEmail)}
          {...register("instructorEmail", {
            required: "Instructor email is required.",
          })}
        />
        <Form.Control.Feedback type="invalid">
          {errors.instructorEmail?.message}
        </Form.Control.Feedback>
        <Form.Text className="text-muted">
          Email must belong to an existing instructor or admin.
        </Form.Text>
      </Form.Group>
      <Button
        type="submit"
        variant="primary"
        data-testid="update-instructor-submit-button"
      >
        Update Instructor
      </Button>
    </Form>
  );
}