Skip to content

Commit 9e6f027

Browse files
committed
push fixes
this has already helped us find some additional edge cases!
1 parent dea5a3a commit 9e6f027

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

src/utilities/__tests__/coerceInputValue-test.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ describe('coerceInputLiteral', () => {
639639
parser.expectToken(TokenKind.SOF);
640640
const variableValuesOrErrors = getVariableValues(
641641
new GraphQLSchema({}),
642-
parser.parseVariableDefinitions(),
642+
parser.parseVariableDefinitions() ?? [],
643643
inputs,
644644
);
645645
invariant(variableValuesOrErrors.variableValues !== undefined);
@@ -698,6 +698,15 @@ describe('coerceInputLiteral', () => {
698698
'~~~{ field: "value" }~~~',
699699
);
700700

701+
testWithVariables('', {}, '{ field: $var }', printScalar, '~~~{ }~~~');
702+
testWithVariables(
703+
'($var: String)',
704+
{},
705+
'{ field: $var }',
706+
printScalar,
707+
'~~~{ }~~~',
708+
);
709+
701710
const throwScalar = new GraphQLScalarType({
702711
name: 'ThrowScalar',
703712
parseConstLiteral() {

src/utilities/__tests__/replaceVariables-test.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ function testVariables(variableDefs: string, inputs: ReadOnlyObjMap<unknown>) {
2424
parser.expectToken(TokenKind.SOF);
2525
const variableValuesOrErrors = getVariableValues(
2626
new GraphQLSchema({ types: [GraphQLInt] }),
27-
parser.parseVariableDefinitions(),
27+
parser.parseVariableDefinitions() ?? [],
2828
inputs,
2929
);
3030
invariant(variableValuesOrErrors.variableValues !== undefined);
@@ -60,9 +60,8 @@ describe('replaceVariables', () => {
6060

6161
it('replaces missing Variables with null', () => {
6262
const ast = parseValue('$var');
63-
expect(replaceVariables(ast, undefined)).to.deep.equal(
64-
parseValue('null'),
65-
);
63+
const vars = testVariables('', {});
64+
expect(replaceVariables(ast, vars)).to.deep.equal(parseValue('null'));
6665
});
6766

6867
it('replaces missing Variables in lists with null', () => {

src/utilities/replaceVariables.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ export function replaceVariables(
3131
? fragmentVariableValues
3232
: variableValues;
3333

34-
if (scopedVariableValues == null) {
34+
const scopedVariableSource = scopedVariableValues?.sources[varName];
35+
if (scopedVariableSource == null) {
3536
return { kind: Kind.NULL };
3637
}
3738

38-
const scopedVariableSource = scopedVariableValues.sources[varName];
3939
if (scopedVariableSource.value === undefined) {
4040
const defaultValue = scopedVariableSource.signature.defaultValue;
4141
if (defaultValue !== undefined) {

0 commit comments

Comments
 (0)