使用GraphQL查询测试React组件时出错

时间:2017-08-02 14:59:21

标签: reactjs mocha graphql react-apollo

我用Mocha测试React组件。其中一些组件连接到react-apollo商店。所以,我需要使用GraphQL查询和突变。

我使用mocha-graphql-register。有了这个库,Mocha就会看到GraphQl查询和像字符串一样的变异。

这是我的测试文件( flow-list.spec.js ):

const data = {
  loading: false,
  "flows": [
    {
      "id": "Rmxvd05vZGU6MQ==",
      "name": "NameOfFlow",
    }
  ],
  "applications": [
    {
      "name": "NameofApp"
    }
  ],
  "flowModes": [
    {
      "name": "Flow Mode Foo"
    }
  ],
  "flowTypes": [
    {
      "name": "Flow Type Foo"
    }
  ],
  "bls": [
    {
      "name": "BL Foo"
    }
  ]
};

describe('<FlowList/>', () => {
  it('Must print table with 7 columns', () => {
    const wrapper = shallow(
      <FlowList data={data}/>
    );
    expect(tableHeaderColumns).to.have.length(7);

  });
});

但是,当我运行npm test时出错。在react-apollo中似乎是一个错误......我无法理解它,也不知道如何解决它。

在npm测试后面,我运行命令

cross-env NODE_ENV=production mocha --compilers graphql:mocha-graphql-register,js:babel-register,:tools/style-and-images-compiler.js tests/index.js

这里是npm test的跟踪日志

> cross-env NODE_ENV=production mocha --compilers graphql:mocha-graphql-register,js:babel-register,:tools/style-and-images-compiler.js tests/index.js


ENV setup is done !!!
Warning - the `printer` exports from `graphql-tag` will be removed in the next major version.
See https://github.com/apollographql/graphql-tag/issues/54 for more information.
D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\react-apollo\parser.js:13
    fragments = document.definitions.filter(function (x) { return x.kind === 'FragmentDefinition'; });
                                    ^

TypeError: Cannot read property 'filter' of undefined
    at Object.parser (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\react-apollo\parser.js:13:37)
    at graphql (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\react-apollo\graphql.js:75:30)
    at Object.<anonymous> (new-development.js:35:49)
    at Module._compile (module.js:570:32)
    at loader (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\babel-register\lib\node.js:148:5)
    at Object.require.extensions.(anonymous function) [as .js] (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\babel-register\lib\node.js:158:7)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (development-list.js:4:1)
    at Module._compile (module.js:570:32)
    at loader (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\babel-register\lib\node.js:148:5)
    at Object.require.extensions.(anonymous function) [as .js] (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\babel-register\lib\node.js:158:7)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (main.js:4:1)
    at Module._compile (module.js:570:32)
    at loader (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\babel-register\lib\node.js:148:5)
    at Object.require.extensions.(anonymous function) [as .js] (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\babel-register\lib\node.js:158:7)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (flow-list.js:4:1)
    at Module._compile (module.js:570:32)
    at loader (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\babel-register\lib\node.js:148:5)
    at Object.require.extensions.(anonymous function) [as .js] (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\babel-register\lib\node.js:158:7)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (flow-list.spec.js:8:1)
    at Module._compile (module.js:570:32)
    at loader (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\babel-register\lib\node.js:148:5)
    at Object.require.extensions.(anonymous function) [as .js] (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\babel-register\lib\node.js:158:7)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (index.js:8:1)
    at Module._compile (module.js:570:32)
    at loader (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\babel-register\lib\node.js:148:5)
    at Object.require.extensions.(anonymous function) [as .js] (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\babel-register\lib\node.js:158:7)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\mocha\lib\mocha.js:220:27
    at Array.forEach (native)
    at Mocha.loadFiles (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\mocha\lib\mocha.js:217:14)
    at Mocha.run (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\mocha\lib\mocha.js:485:10)
    at Object.<anonymous> (D:\outils_dev\projet_pycharm\tibco_frontend\node_modules\mocha\bin\_mocha:403:18)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:393:7)
    at startup (bootstrap_node.js:150:9)
    at bootstrap_node.js:508:3
npm ERR! Test failed.  See above for more details.

1 个答案:

答案 0 :(得分:0)

呃......我错过了导入&#39; gql&#39;来自graphql-tag库。

在我的代码中,我需要使用GraphQL查询和这样的突变:

git reset --soft <SHA OF PARENT OF BAD COMMIT>

它现在有效。