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

Commit 94ba634

Browse files
committed
server: add MessageProcessor test
1 parent afa4561 commit 94ba634

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

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

Lines changed: 47 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,17 @@ describe('MessageProcessor', () => {
5152
getDiagnostics: (query, uri) => {
5253
return [];
5354
},
55+
getOutline: (query) => {
56+
return {
57+
outlineTrees: [{
58+
representativeName: "item",
59+
kind: "Field",
60+
startPosition: { line: 1, character: 2 },
61+
endPosition: { line: 1, character: 4 },
62+
children: [],
63+
}],
64+
};
65+
},
5466
};
5567
});
5668
messageProcessor._isInitialized = true;
@@ -164,4 +176,39 @@ describe('MessageProcessor', () => {
164176
const result = await messageProcessor.handleDefinitionRequest(test);
165177
expect(result[0].uri).to.equal(`file://${queryDir}/testFragment.graphql`);
166178
});
179+
180+
it('runs document symbol requests', async () => {
181+
const validQuery = `
182+
{
183+
hero(episode: EMPIRE){
184+
...testFragment
185+
}
186+
}
187+
`;
188+
189+
const newDocument = {
190+
textDocument: {
191+
text: validQuery,
192+
uri: `${queryDir}/test3.graphql`,
193+
version: 0,
194+
},
195+
};
196+
197+
await messageProcessor.handleDidOpenOrSaveNotification(newDocument);
198+
199+
const test = {
200+
textDocument: newDocument.textDocument,
201+
};
202+
203+
const result = await messageProcessor.handleDocumentSymbolRequest(test);
204+
205+
expect(result).to.not.be.undefined;
206+
expect(result.length).to.equal(1);
207+
expect(result[0].name).to.equal("item");
208+
expect(result[0].kind).to.equal(SymbolKind.Field);
209+
expect(result[0].location.range).to.deep.equal({
210+
start: { line: 1, character: 2 },
211+
end: { line: 1, character: 4 },
212+
});
213+
});
167214
});

0 commit comments

Comments
 (0)