graphql-tools
Advanced tools
Comparing version 0.6.3 to 0.6.4
@@ -5,2 +5,8 @@ # Changelog | ||
### v0.6.4 | ||
* Make mocking partial objects match expected behavior ([@sebastienbarre](https://github.com/sebastienbarre) in [#96](https://github.com/apollostack/graphql-tools/pull/96)) | ||
* Improved behavior when mocking interfaces & unions ([@itajaja](https://github.com/itajaja) in [#102](https://github.com/apollostack/graphql-tools/pull/102)) | ||
### v0.6.3 | ||
* Unpin babel-core version to solve build problem (PR #92) | ||
@@ -7,0 +13,0 @@ * Added support for `extend` keyword to schemaGenerator https://github.com/apollostack/graphql-tools/pull/90 |
@@ -12,2 +12,4 @@ 'use strict'; | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
var _type = require('graphql/type'); | ||
@@ -203,7 +205,13 @@ | ||
if (fieldType instanceof _type.GraphQLUnionType) { | ||
return { typename: getRandomElement(fieldType.getTypes()) }; | ||
var randomType = getRandomElement(fieldType.getTypes()); | ||
return _extends({ | ||
typename: randomType | ||
}, mockType(randomType).apply(undefined, args)); | ||
} | ||
if (fieldType instanceof _type.GraphQLInterfaceType) { | ||
var possibleTypes = schema.getPossibleTypes(fieldType); | ||
return { typename: getRandomElement(possibleTypes) }; | ||
var _randomType = getRandomElement(possibleTypes); | ||
return _extends({ | ||
typename: _randomType | ||
}, mockType(_randomType).apply(undefined, args)); | ||
} | ||
@@ -225,6 +233,2 @@ if (fieldType instanceof _type.GraphQLEnumType) { | ||
if (preserveResolvers && field.resolve) { | ||
return; | ||
} | ||
// we have to handle the root mutation and root query types differently, | ||
@@ -264,4 +268,17 @@ // because no resolver is called at the root. | ||
} | ||
// eslint-disable-next-line no-param-reassign | ||
field.resolve = mockType(field.type, typeName, fieldName); | ||
if (!preserveResolvers || !field.resolve) { | ||
// eslint-disable-next-line no-param-reassign | ||
field.resolve = mockType(field.type, typeName, fieldName); | ||
} else { | ||
(function () { | ||
var oldResolver = field.resolve; | ||
var mockResolver = mockType(field.type, typeName, fieldName); | ||
// eslint-disable-next-line no-param-reassign | ||
field.resolve = function () { | ||
var mockedValue = mockResolver.apply(undefined, arguments); | ||
var resolvedValue = oldResolver.apply(undefined, arguments); | ||
return (typeof mockedValue === 'undefined' ? 'undefined' : _typeof(mockedValue)) === 'object' && (typeof resolvedValue === 'undefined' ? 'undefined' : _typeof(resolvedValue)) === 'object' ? Object.assign({}, mockedValue, resolvedValue) : resolvedValue; | ||
}; | ||
})(); | ||
} | ||
}); | ||
@@ -268,0 +285,0 @@ } |
{ | ||
"name": "graphql-tools", | ||
"version": "0.6.3", | ||
"version": "0.6.4", | ||
"description": "A set of useful GraphQL tools", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
129358
831