ag-grid Jest测试-此.btFirst.insertAdjacentElement不是函数

pxiryf3j  于 11个月前  发布在  Jest
关注(0)|答案(4)|浏览(211)

我尝试使用Jest测试ag-grid组件:

describe('DataGridInternal Component Tests', () => {
  it('includes class names on DataGrid', () => {
    const component = mount(<DataGridInternal {...SAMPLE_PROPS} />);
    expect(component.find('[data-test="ccfk-datagrid"]')).toHaveClassName('csf-material-grid');

  });
});

字符串
我得到了例外:
第一个月
来自
node_modules/ag-grid-community/dist/lib/rowModels/pagination/paginationComp.js:49
一旦我注意到这一行,测试就通过了。
你知道什么是不正确的吗?
我正在使用:

"ag-grid-community": "21.2.2",       
"ag-grid-react": "21.2.2",
"enzyme": "3.10.0",
"enzyme-adapter-react-16": "1.14.0",
"enzyme-to-json": "3.3.5"

lrpiutwd

lrpiutwd1#

解决方法:
如果您在测试运行器中使用jest,则需要通过安装jest-environment-jsdom-fourteen进行升级,并将以下内容添加到jest.config中
第一个月

如果你用的是反作用应用
npm i -D jest-environment-jsdom-fourteen
然后在你的脚本中:
"test": "react-scripts test --env=jsdom-fourteen",
来源:12

cld4siwp

cld4siwp2#

我也面临着同样的问题。
我认为问题出在Jest测试运行器使用的jsdom包的版本上。
insertAdjacentElement是在jsdom13.1.0版本中实现的,如changelog中所述。
我运行的是create-react-app v2,目前不使用此版本的jsdom

oiopk7p5

oiopk7p53#

你能展示一下你是如何准确地要求/导入ag-grid和定义你的gridOptions结构的吗?我假设你是在测试一个现有的表或你自己在HTML中定义的表?

yzckvree

yzckvree4#

对我来说,安装“jest-environment-jsdom”沿着“jest-environment-jsdom-fourteen”是必要的:

"jest-environment-jsdom": "26.6.2",
    "jest-environment-jsdom-fourteen": "1.0.1",

字符串
其他配套包括:

"@testing-library/jest-dom": "4.2.4",
    "@testing-library/react": "9.3.2",
    "@testing-library/user-event": "7.1.2",
    "jest": "26.6.3",
    "babel-jest": "26.6.3",

相关问题