lsp-ws-connection
Version:
Utility for adapting editors to language server protocol
75 lines • 2.96 kB
JavaScript
import { expect } from 'chai';
import { registerServerCapability, unregisterServerCapability } from '../server-capability-registration';
describe('ServerCapabilities client registration', function () {
var serverCapabilities = {
hoverProvider: true,
completionProvider: {
resolveProvider: true,
triggerCharacters: ['.', ',']
},
signatureHelpProvider: {
triggerCharacters: ['.', ',']
},
definitionProvider: true,
typeDefinitionProvider: true,
implementationProvider: true,
referencesProvider: true,
documentHighlightProvider: true,
documentSymbolProvider: true,
workspaceSymbolProvider: true,
codeActionProvider: true,
codeLensProvider: {
resolveProvider: true
},
documentFormattingProvider: true,
documentRangeFormattingProvider: true,
documentOnTypeFormattingProvider: {
firstTriggerCharacter: '.'
},
renameProvider: true,
documentLinkProvider: {
resolveProvider: true
},
colorProvider: true,
foldingRangeProvider: true,
declarationProvider: true,
executeCommandProvider: {
commands: ['not', 'real', 'commands']
}
};
it('registers server capabilities', function () {
Object.keys(serverCapabilities).forEach(function (capability) {
var capabilityOptions = serverCapabilities[capability];
var registration = {
id: 'id',
method: getMethodFromCapability(capability)
};
if (typeof capabilityOptions !== 'boolean') {
registration.registerOptions = capabilityOptions;
}
var newServerCapabilities = registerServerCapability({}, registration);
if (typeof capabilityOptions === 'boolean') {
// eslint-disable-next-line jest/no-conditional-expect
expect(newServerCapabilities[capability]).equal(capabilityOptions);
}
else {
// eslint-disable-next-line jest/no-conditional-expect
expect(newServerCapabilities[capability]).to.deep.equal(capabilityOptions);
}
});
});
it('unregisters server capabilities', function () {
Object.keys(serverCapabilities).forEach(function (capability) {
var unregistration = {
id: 'some id',
method: getMethodFromCapability(capability)
};
var newServerCapabilities = unregisterServerCapability(serverCapabilities, unregistration);
expect(newServerCapabilities[capability]).equal(void 0);
});
});
});
function getMethodFromCapability(capability) {
return "textDocument/".concat(capability.split('Provider')[0]);
}
//# sourceMappingURL=server-capability-registration.test.js.map