TypeError: Cannot read property 'style' of null on TextareaAutosize

Viewed 110

I am having trouble with unit snapshot testing and cant figure why. I am getting the following error:

enter image description here

The component is actually a Form with 3 fields: Full name, Email and Note. There is also a checkbox which controls the Email and Note field in case we dont want to put that information in the form. For the Note I am using TextareaAutosize, so that the text area is re sizable (due to requirements).

const [missingInfo, setMissingInfo] = useState(false);

const initialValues = {
  fullName: '',
  email: '',
  note: '',
};

return (
  <Formik
      initialValues={initialValues}
      validationSchema={object({
        fullName: string().required('Must contain a full name'),
      })}
      onSubmit={(values, { setSubmitting }) => {
        setSubmitting(true);
        ...
      }}
    >
      <Form>
        <Typography>Title</Typography>
        <HashLink
          to={{ hash: '#xxx' }}
          onClick={() => toggleHash()}
        >
          Changed your mind?
        </HashLink>
        <Typography>Full name</Typography>
        <Field name="fullName">
          {({ field }: FieldProps) => (
            <TextField
              id="fullName"
              variant="outlined"
              type="text"
              fullWidth
              {...field}
            />
          )}
        </Field>
        <ErrorMessage name="fullName">
          {msg => <div className={styles.errorMessage}>{msg}</div>}
        </ErrorMessage>
        <FormControlLabel
          control={
            <Checkbox
              checked={missingInfo}
              onChange={() => setMissingInfo(!missingInfo)}
              name="missingInfo"
            />
          }
          label="No info?"
        />
        {!missingInfo && (
          <>
            <Typography>Email</Typography>
            <Field name="email">
              {({ field }: FieldProps) => (
                <TextField
                  id="email"
                  variant="outlined"
                  type="text"
                  fullWidth
                  {...field}
                />
              )}
            </Field>
            <Typography>Note</Typography>
            <Field name="note">
              {({ field }: FieldProps) => (
                <TextareaAutosize
                  rowsMin={3}
                  className={styles.textArea}
                  {...field}
                />
              )}
            </Field>
          </>
        )}

        <Button
          variant="contained"
          type="submit"
        >
          Apply
        </Button>
      </Form>
    </Formik>
)

The error is as I said in the snapshot test:

test('matches snapshot', () => {
  const tree = renderer
    .create(
      <BrowserRouter>
        <MyComponent {...props} />
      </BrowserRouter>,
    )
    .toJSON();
  expect(tree).toMatchSnapshot();
});

Can someone please help?

0 Answers
Related