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   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   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;