ag-grid开玩笑测试-this.btFirst.insertAdjacentElement不是函数

时间:2019-11-01 19:48:42

标签: reactjs testing jestjs ag-grid

我尝试使用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');

  });
});

我得到一个例外:

TypeError: this.btFirst.insertAdjacentElement is not a function

来自

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"

3 个答案:

答案 0 :(得分:3)

解决方案:

如果您将jest用于测试运行程序,则需要通过安装jest-environment-jsdom-十四,然后将以下内容添加到jest.config中来进行升级

testEnvironment: 'jest-environment-jsdom-fourteen'

如果您使用的是create-react-app,

npm i -D jest-environment-jsdom-fourteen

然后在您的脚本中:

"test": "react-scripts test --env=jsdom-fourteen",

来源:1 2

答案 1 :(得分:0)

您能显示出您是如何精确地要求/导入ag-grid并定义您的gridOptions结构吗? 我假设您正在测试现有表或您在HTML中定义的表?

答案 2 :(得分:0)

我也面临着同样的问题。

我相信问题在于Jest测试运行程序使用的jsdom软件包的版本。

changelog中所述,

insertAdjacentElement13.1.0的{​​{1}}版本中实现。

我正在运行jsdom,目前不使用此版本的create-react-app v2