2017-10-05 3 views
0

Je suis en train de se moquer de service comme dans le docs exemple http://dev.apollodata.com/tools/graphql-tools/mocking.html#Default-mock-exampleservice moqueur et en cours d'exécution requête paramétrées dans React apollo graphql

J'exporter mon schéma avec la requête standard d'introspection, la construction d'un objet de schéma et en utilisant ce lorsque vous essayez d'exécuter une requête comme mentionné dans les documents.

import * as introspectionResult from "../../graphql/schema.json" 
const GRAPHQL_QUERY = ` 
query eventsFeatured(
    $type: String!, 
    $entity_type: String, 
    $market__role: String, 
    $outcome__odds_rank_unique: Int, 
    $limit: Int 
) { 
    featured(
    type: $type, 
    entity_type: $entity_type, 
    market__role: $market__role, 
    outcome__odds_rank_unique: $outcome__odds_rank_unique, 
    limit: $limit 
) { 
    ...FeaturedFragment 
    media { 
     description 
     extralarge 
     large 
     medium 
     preview 
     __typename 
    } 
    event { 
     ...EventFragment 
     market { 
     ...MarketFragment 
     outcome { 
      ...OutcomeFragment 
      media_logo { 
      preview 
      small 
      __typename 
      } 
      bookie { 
      ...BookieFragment 
      __typename 
      } 
      __typename 
     } 
     __typename 
     } 
     article { 
     ...ArticleFragment 
     __typename 
     } 
     category3 { 
     ...AllCategoriesFragment 
     __typename 
     } 
     __typename 
    } 
    offer { 
     id 
     name 
     conditions 
     deeplink 
     domain { 
     ...EventFragment 
     __typename 
     } 
     __typename 
    } 
    __typename 
    } 
} 

fragment EventFragment on Event { 
    id 
    name 
    canonicalised_name 
    display_name 
    date 
    date_human 
    date_short 
    type 
    __typename 
} 

fragment MarketFragment on Market { 
    id 
    name 
    display_name 
    canonicalised_name 
    type 
    role { 
    name 
    __typename 
    } 
    __typename 
} 

fragment OutcomeFragment on Outcome { 
    id 
    name 
    display_name 
    canonicalised_name 
    odds 
    odds_decimal 
    odds_rank 
    deeplink 
    home_or_away 
    type 
    __typename 
} 

fragment BookieFragment on Bookie { 
    name 
    __typename 
} 

fragment ArticleFragment on BaseArticle { 
    title 
    body 
    excerpt 
    author 
    date_no_time 
    date_stamp 
    date_human 
    date_short 
    date 
    __typename 
} 

fragment AllCategoriesFragment on Category3 { 
    ...Category3Fragment 
    category2 { 
    ...Category2Fragment 
    category1 { 
     ...Category1Fragment 
     __typename 
    } 
    __typename 
    } 
    __typename 
} 

fragment Category1Fragment on Category1 { 
    name 
    canonicalised_name 
    __typename 
} 

fragment Category2Fragment on Category2 { 
    name 
    canonicalised_name 
    __typename 
} 

fragment Category3Fragment on Category3 { 
    name 
    canonicalised_name 
    __typename 
} 

fragment FeaturedFragment on Featured { 
    id 
    type 
    display_order 
    __typename 
} 
` 

// this builds our mock apollo schema 
const schema = buildClientSchema(introspectionResult) 
addMockFunctionsToSchema({ schema }) 

// execute the supplied apollo query 
    graphql(schema, GRAPHQL_QUERY, { 
     options: (props) => ({ 
     variables: { 
      type: "IMAGEGRIDHOMEPAGE" 
     }, 
     })}) 
     .then(graphqlResult => { 
.... etc 
``` 

However, I am seeing the following error: 

``` 
{ errors: 
     [ GraphQLError { 
      message: 'Variable "$type" of required type "String!" was not provided.', 
      locations: [Object], 
      path: undefined } ] } 

Il semble que la fonction graphql ne reconnaît pas les options standard objet, au moins pas les définitions variables lorsqu'elles sont utilisées dans ce contexte d'avoir un objet de schéma en tant que premier arg. J'ai essayé de creuser dans la source ici, mais mon tapuscrit est pas le meilleur - https://github.com/apollographql/react-apollo/blob/master/src/graphql.tsx

+0

Hmmm, dilly d'un cornichon là elmpp. Je me promène si quelqu'un connaît la réponse à cette question – elmpp

Répondre

0
erreur utilisateur

- comme on peut le voir dans la documentation, la fonction graphql ici est de la base bibliothèque graphql, non pas le apollo-react un.