Hvorfor er denne testen ved hjelp av Jest & reagere-test-renderer kaster feil fordi den prøver å analysere en .graphql fil?

stemmer
0

Jeg prøver å kjøre en enkel test for å komme i gang med Jest og det virker som det er analyse av hele programmet. Filen hvor feilen blir kastet blir referert til av tjenestefilen.

Hvis jeg ikke tar med graphqli regex for moduleNameMapperJest prøver å analysere .graphqlfilen selv.

Når filen app-containerblir analysert, graphql.jsfra Apollo-klient er å kaste en feil under analysere en importert .graphqlfil.

Edit: Hvis jeg setter spørsmål inline bruke gqldisse feilene stoppe. Noen ideer med hjelp av importerte spørsmål?

fra package.json:

 jest: {
    testEnvironment: jsdom,
    transform: {
      \\.(gql|graphql)$: jest-transform-graphql,
      .*: babel-jest
    },
    modulePaths: [
      <rootDir>/src/modules
    ],
    moduleFileExtensions: [
      js
    ],
    moduleNameMapper: {
      \\.(graphql|jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|yml)$: <rootDir>/src/__mocks__/fileMock.js
    }
  }

Webpack-config:

loaders: [{
            test: /\.(sass|scss|css)$/,
            loader: LOCAL_ENV ? `style!${CSS_LOADERS}` : ExtractTextPlugin.extract(CSS_LOADERS)
        }, {
            test: /\.json$/,
            exclude: /node_modules/,
            loader: 'json'
        }, {
            test: /\.yml$/,
            exclude: /node_modules/,
            loader: 'json!yaml'
        }, {
            test: /\.js$/,
            exclude: /node_modules/,
            loader: 'babel'
        }, {
            test: /\.(jpe?g|png|gif)$/,
            exclude: /node_modules/,
            loader: 'url?limit=1000' // 1KB
        }, {
            test: /\.(graphql|gql)$/,
            exclude: /node_modules/,
            loader: 'graphql-tag/loader',
        }]

Test:

import React from 'react';
import { Provider } from 'react-redux';
import renderer from 'react-test-renderer';
import services from 'app-system/services';

test('Component should render with a Provider', () => {
    const component = renderer.create(
        <Provider store={services.reduxStore}>
            <div>This is a test</div>
        </Provider>
    );

    const tree = component.toJSON();
    expect(tree.type).toBe('div');
});

Feil: FAIL src / app / tester /store.test.js ● Test suite mislyktes i å kjøre

    TypeError: Cannot read property 'filter' of undefined

      at Object.parser (node_modules/react-apollo/lib/parser.js:12:41)
      at graphql (node_modules/react-apollo/lib/graphql.js:74:30)
      at Object.<anonymous> (src/app/modules/group/components/app-container/index.js:52:52)
      at Object.<anonymous> (src/app/modules/group/components/index.js:1:418)
      at Object.<anonymous> (src/app/modules/team/components/hello/index.js:2:45)
      at Object.<anonymous> (src/app/modules/team/components/index.js:1:378)
      at Object.<anonymous> (src/app/modules/team/index.js:1:209)
      at Object.<anonymous> (src/app/modules/system/register-modals.js:17:57)
      at Object.<anonymous> (src/app/modules/system/services.js:26:49)
      at Object.<anonymous> (src/app/__tests__/store.test.js:4:43)

Linje 74 fra graphql.js:

var operation = parser_1.parser(document);
Publisert på 16/02/2017 klokken 06:39
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Jeg fjernet graphql filtyper fra min moduleNameMapper og det fungerte. For alle andre som har et lignende problem, ta en titt på spørsmålet ovenfor, og lage din se slik ut:

"moduleNameMapper": {
      "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|yml)$": "<rootDir>/src/__mocks__/fileMock.js",
      ...
    }
Svarte 16/02/2017 kl. 07:17
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more