All files / components/Staff StaffCSVUploadForm.jsx

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

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 421x 1x   1x 32x 32x 32x 32x 32x 32x 32x   32x 32x 32x 32x 32x 32x 32x 32x 32x 32x 32x 32x 4x 32x   32x 32x     32x 32x 32x 32x 32x         32x  
import { useForm } from "react-hook-form";
import { Button, Form } from "react-bootstrap";
 
export default function StaffCSVUploadForm({ submitAction }) {
  // Stryker disable all
  const {
    register,
    formState: { errors },
    handleSubmit,
  } = useForm();
  // Stryker restore all
 
  return (
    <Form onSubmit={handleSubmit(submitAction)}>
      <Form.Group className="mb-2">
        <Form.Label htmlFor="upload">Upload Staff Roster (.csv)</Form.Label>
        <Form.Control
          data-testid="StaffCSVUploadForm-upload"
          id="upload"
          type="file"
          accept=".csv"
          isInvalid={Boolean(errors.upload)}
          {...register("upload", {
            validate: (files) =>
              (files && files.length > 0) || "A CSV file is required.",
          })}
        />
        <Form.Control.Feedback type="invalid">
          {errors.upload?.message}
        </Form.Control.Feedback>
      </Form.Group>
      <Button
        type="submit"
        data-testid="StaffCSVUploadForm-submit"
        className="mt-3"
      >
        Upload
      </Button>
    </Form>
  );
}