0
我試圖嘲弄服務作爲文檔例如http://dev.apollodata.com/tools/graphql-tools/mocking.html#Default-mock-example
嘲弄的服務和運行參數化查詢反應阿波羅graphql
我出口我的架構與標準內省查詢,建立一個模式對象,並使用該當試圖運行文檔中提到的查詢時。
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 } ] }
看來,在具有架構對象作爲第一arg的上下文中使用時,graphql
函數不能識別的標準選項對象,至少不是variables
定義。我試圖挖掘到源在這裏,但我的打字稿是不是最好的 - https://github.com/apollographql/react-apollo/blob/master/src/graphql.tsx
嗯,稀釋的一個泡菜elmpp。我徘徊,如果有人知道這個答案 – elmpp