All files / components/Assignments IndividualAssignmentForm.jsx

100% Statements 46/46
100% Branches 2/2
100% Functions 1/1
100% Lines 46/46

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 651x 1x 1x   1x 41x 41x 41x 41x 41x   41x 41x 41x 41x   41x 41x 41x 41x 41x 41x 41x 41x 41x 41x   41x 41x     41x 41x     41x 41x 41x 41x 41x     41x 41x 41x 41x 41x 41x 41x   41x 41x 41x 41x     41x 41x           41x  
import { useForm } from "react-hook-form";
import { Button, Form } from "react-bootstrap";
import React from "react";
 
export default function IndividualAssignmentForm({ submitAction }) {
  const {
    register,
    formState: { errors },
    handleSubmit,
  } = useForm();
 
  return (
    <Form
      onSubmit={handleSubmit(submitAction)}
      data-testid="IndividualAssignmentForm"
    >
      <Form.Group>
        <Form.Label htmlFor="repoPrefix">Repository Prefix</Form.Label>
        <Form.Control
          id="repoPrefix"
          type="text"
          isInvalid={Boolean(errors.repoPrefix)}
          data-testid="IndividualAssignmentForm-repoPrefix"
          {...register("repoPrefix", {
            required: "Repository Prefix is required.",
          })}
        />
        <Form.Control.Feedback type="invalid">
          {errors.repoPrefix?.message}
        </Form.Control.Feedback>
      </Form.Group>
      <Form.Group className="mb-3">
        <Form.Label htmlFor="assignmentPrivacy">
          Private Repositories?
        </Form.Label>
        <Form.Check
          id="assignmentPrivacy"
          type="checkbox"
          data-testid="IndividualAssignmentForm-assignmentPrivacy"
          {...register("assignmentPrivacy")}
        />
      </Form.Group>
      <Form.Group className="mb-3">
        <Form.Label htmlFor="permissions">Student Permissions</Form.Label>
        <Form.Control
          as="select"
          defaultValue={"MAINTAIN"}
          data-testid={"IndividualAssignmentForm-permissions"}
          {...register("permissions")}
        >
          <option value="READ">Read</option>
          <option value="WRITE">Write</option>
          <option value="MAINTAIN">Maintain</option>
          <option value="ADMIN">Admin</option>
        </Form.Control>
      </Form.Group>
      <Form.Group>
        <Button type="submit" data-testid="IndividualAssignmentForm-submit">
          Create
        </Button>
      </Form.Group>
    </Form>
  );
}