Skip to content
This repository was archived by the owner on Sep 2, 2020. It is now read-only.

Commit 6fd228a

Browse files
committed
server: add MessageProcessor test
1 parent afa4561 commit 6fd228a

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

packages/server/src/__tests__/MessageProcessor-test.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import {expect} from 'chai';
1212
import {Position, Range} from 'graphql-language-service-utils';
13+
import {SymbolKind} from 'vscode-languageserver-types';
1314
import {beforeEach, describe, it} from 'mocha';
1415

1516
import {MessageProcessor} from '../MessageProcessor';
@@ -51,6 +52,19 @@ describe('MessageProcessor', () => {
5152
getDiagnostics: (query, uri) => {
5253
return [];
5354
},
55+
getOutline: query => {
56+
return {
57+
outlineTrees: [
58+
{
59+
representativeName: 'item',
60+
kind: 'Field',
61+
startPosition: {line: 1, character: 2},
62+
endPosition: {line: 1, character: 4},
63+
children: [],
64+
},
65+
],
66+
};
67+
},
5468
};
5569
});
5670
messageProcessor._isInitialized = true;
@@ -164,4 +178,39 @@ describe('MessageProcessor', () => {
164178
const result = await messageProcessor.handleDefinitionRequest(test);
165179
expect(result[0].uri).to.equal(`file://${queryDir}/testFragment.graphql`);
166180
});
181+
182+
it('runs document symbol requests', async () => {
183+
const validQuery = `
184+
{
185+
hero(episode: EMPIRE){
186+
...testFragment
187+
}
188+
}
189+
`;
190+
191+
const newDocument = {
192+
textDocument: {
193+
text: validQuery,
194+
uri: `${queryDir}/test3.graphql`,
195+
version: 0,
196+
},
197+
};
198+
199+
await messageProcessor.handleDidOpenOrSaveNotification(newDocument);
200+
201+
const test = {
202+
textDocument: newDocument.textDocument,
203+
};
204+
205+
const result = await messageProcessor.handleDocumentSymbolRequest(test);
206+
207+
expect(result).to.not.be.undefined;
208+
expect(result.length).to.equal(1);
209+
expect(result[0].name).to.equal('item');
210+
expect(result[0].kind).to.equal(SymbolKind.Field);
211+
expect(result[0].location.range).to.deep.equal({
212+
start: {line: 1, character: 2},
213+
end: {line: 1, character: 4},
214+
});
215+
});
167216
});

0 commit comments

Comments
 (0)