Why does jest-dom give the error "TypeError: expect(…).not.toBeVisible is not a function" when I use it

In relation to a previous question – How can Enzyme check for component visibility? I tried using jest-dom to specifically use their toBeVisible function.

Despite following the documentation I cannot get it to work in my test and get the error

"TypeError: expect(...).not.toBeVisible is not a function"

Fully reproduced in CodeSandbox here Edit check-checkbox-hidden-with-jsdom

import Enzyme, { mount } from "enzyme";
import Adapter from "enzyme-adapter-react-16";
import React from "react";
import MyCheckbox from "./MyCheckbox";
import MyCheckboxesInUse from "./MyCheckboxesInUse";


Enzyme.configure({ adapter: new Adapter() });

test("Check that one checkbox is hidden and the other is visible", () => {
  const wrapper = mount(<MyCheckboxesInUse />);

  const checkboxes = wrapper.find(MyCheckbox);
  expect(checkboxes).toHaveLength(2);

  //HOW DO I CHECK THAT ONE IS VISIBLE AND THE OTHER IS NOT ?
  expect(checkboxes.get(0)).not.toBeVisible();
  expect(checkboxes.get(1)).toBeVisible();
});

40 thoughts on “Why does jest-dom give the error "TypeError: expect(…).not.toBeVisible is not a function" when I use it”

Leave a Comment