我用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.
答案 0 :(得分:0)
呃......我错过了导入&#39; gql&#39;来自graphql-tag库。
在我的代码中,我需要使用GraphQL查询和这样的突变:
git reset --soft <SHA OF PARENT OF BAD COMMIT>
它现在有效。