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