-
Notifications
You must be signed in to change notification settings - Fork 26
/
diagnostics-syntax.js
27 lines (23 loc) · 996 Bytes
/
diagnostics-syntax.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const assert = require('assert');
const path = require('path');
function findResponse(responses, eventName) {
return responses.find(response => response.event === eventName);
}
const fileContent = `
import gql from 'graphql-tag';
const q = gql\`{\`;
`;
async function run(server) {
const file = path.resolve(__dirname, '../../project-fixtures/simple-prj/main.ts');
server.send({ command: 'open', arguments: { file, fileContent, scriptKindName: 'TS' } });
await server.waitEvent('projectLoadingFinish');
server.send({ command: 'geterr', arguments: { files: [file], delay: 0 } });
await server.waitEvent('semanticDiag');
return server.close().then(() => {
const semanticDiagEvent = findResponse(server.responses, 'semanticDiag');
assert(!!semanticDiagEvent);
assert.strictEqual(semanticDiagEvent.body.diagnostics.length, 1);
assert.strictEqual(semanticDiagEvent.body.diagnostics[0].text, 'Syntax Error: Expected Name, found <EOF>.');
});
}
module.exports = run;