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