All files / components/Jobs TestJobForm.jsx

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

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 611x 1x   39x 39x 39x 39x 39x   39x 39x 39x 39x 39x 39x 39x   39x   39x 39x 39x 39x     39x 39x 39x 39x 39x       39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x   39x 39x       39x         39x   1x  
import { Button, Form } from "react-bootstrap";
import { useForm } from "react-hook-form";
 
function TestJobForm({ submitAction }) {
  const defaultValues = {
    fail: false,
    sleepMs: 1000,
  };
 
  // Stryker disable all
  const {
    register,
    formState: { errors },
    handleSubmit,
  } = useForm({ defaultValues: defaultValues });
  // Stryker restore all
 
  const testid = "TestJobForm";
 
  return (
    <Form onSubmit={handleSubmit(submitAction)}>
      <Form.Group className="mb-3">
        <Form.Label htmlFor="fail">
          Fail? (if checked, job will fail, to test error handling)
        </Form.Label>
        <Form.Check
          data-testid={`${testid}-fail`}
          type="checkbox"
          id="fail"
          {...register("fail")}
        />
      </Form.Group>
 
      <Form.Group className="mb-3">
        <Form.Label htmlFor="sleepMs">Sleep (milliseconds)</Form.Label>
        <Form.Control
          id="sleepMs"
          data-testid={`${testid}-sleepMs`}
          type="number"
          step="100"
          isInvalid={!!errors.sleepMs}
          {...register("sleepMs", {
            required: "sleepMs is required (0 is ok)",
            min: { value: 0, message: "sleepMs must be positive" },
            max: { value: 60000, message: "sleepMs must be ≤ 60000" },
          })}
        />
        <Form.Control.Feedback type="invalid">
          {errors.sleepMs?.message}
        </Form.Control.Feedback>
      </Form.Group>
 
      <Button type="submit" data-testid="TestJobForm-Submit-Button">
        Submit
      </Button>
    </Form>
  );
}
 
export default TestJobForm;