diff --git a/packages/graphql-language-service-server/src/__tests__/MessageProcessor.spec.ts b/packages/graphql-language-service-server/src/__tests__/MessageProcessor.spec.ts index ffbe0dc6f3..1704e4e36e 100644 --- a/packages/graphql-language-service-server/src/__tests__/MessageProcessor.spec.ts +++ b/packages/graphql-language-service-server/src/__tests__/MessageProcessor.spec.ts @@ -436,7 +436,7 @@ describe('MessageProcessor with config', () => { character: 0, }, end: { - line: 102 + offset, + line: 103 + offset, character: 1, }, }); @@ -450,11 +450,11 @@ describe('MessageProcessor with config', () => { // this might break, please adjust if you see a failure here expect(serializeRange(schemaDefs[0].range)).toEqual({ start: { - line: 104 + offset, + line: 105 + offset, character: 0, }, end: { - line: 112 + offset, + line: 113 + offset, character: 1, }, }); diff --git a/packages/graphql-language-service/src/interface/__tests__/getAutocompleteSuggestions-test.ts b/packages/graphql-language-service/src/interface/__tests__/getAutocompleteSuggestions-test.ts index 348c46a1f3..5d2507a0ef 100644 --- a/packages/graphql-language-service/src/interface/__tests__/getAutocompleteSuggestions-test.ts +++ b/packages/graphql-language-service/src/interface/__tests__/getAutocompleteSuggestions-test.ts @@ -704,14 +704,14 @@ describe('getAutocompleteSuggestions', () => { // TODO: decide if we want this. Discussing with @benjie, we might want to actually give the user flexibility here, // instead of being strict - // it('provides no more field suggestions once a oneOf field is chose and a user begins typing another field', () => { - // expect( - // testSuggestions( - // '{ oneOfInputTypeTest(oneOf: { value: 2 d', - // new Position(0, 40), - // ), - // ).toEqual([]); - // }); + it('provides no more field suggestions once a oneOf field is chose and a user begins typing another field', () => { + expect( + testSuggestions( + '{ oneOfInputTypeTest(oneOf: { value: 2 d', + new Position(0, 40), + ), + ).toEqual([]); + }); it('provides correct field name suggestion inside inline fragment', () => { expect( diff --git a/packages/graphql-language-service/src/interface/getAutocompleteSuggestions.ts b/packages/graphql-language-service/src/interface/getAutocompleteSuggestions.ts index 2c145eab21..83b5c7987f 100644 --- a/packages/graphql-language-service/src/interface/getAutocompleteSuggestions.ts +++ b/packages/graphql-language-service/src/interface/getAutocompleteSuggestions.ts @@ -315,6 +315,8 @@ export function getAutocompleteSuggestions( // @oneOf logic! console.log(state.prevState?.prevState?.kind, !!typeInfo.inputType); if ( + typeInfo?.inputType && + 'isOneOf' in typeInfo.inputType && typeInfo?.inputType?.isOneOf === true && (state.prevState?.prevState?.kind !== 'Argument' || token.string !== '{') ) { diff --git a/packages/graphql-language-service/src/parser/getTypeInfo.ts b/packages/graphql-language-service/src/parser/getTypeInfo.ts index d2fb371513..656c301596 100644 --- a/packages/graphql-language-service/src/parser/getTypeInfo.ts +++ b/packages/graphql-language-service/src/parser/getTypeInfo.ts @@ -245,13 +245,14 @@ export function getTypeInfo( ? objectType.getFields() : null; inputType = objectType; - console.log(inputType); break; // TODO: needs tests case RuleKinds.OBJECT_FIELD: const objectField = state.name && objectFieldDefs ? objectFieldDefs[state.name] : null; - inputType = objectField?.type; + if (objectField?.type) { + inputType = objectField?.type; + } // @ts-expect-error fieldDef = objectField as GraphQLField; type = fieldDef ? fieldDef.type : null; diff --git a/packages/graphql-language-service/src/types.ts b/packages/graphql-language-service/src/types.ts index 4b6e9f4280..52b77d843f 100644 --- a/packages/graphql-language-service/src/types.ts +++ b/packages/graphql-language-service/src/types.ts @@ -29,8 +29,6 @@ import type { GraphQLObjectType, GraphQLType, GraphQLDirective, - GraphQLInputType, - GraphQLInputObjectType, } from 'graphql'; export type Maybe = T | null | undefined;