atom-community / atom-community/atom-languageclient

Providing a test library for the clients

Open
#128 0 comments 2 reactions 0 assignees View on GitHub
low-priority tests
Dominant language
TypeScript
Stars
47
Forks
13
PR merge metrics
No merged PRs in 30d

Description

The tests in the `atom-languageclient` can be refactored and generalized as a language client test library (independent of an exact server). This will make it possible for the clients to test different features for their language server without writing all the tests from scratch.

To do this a couple of things should be done:
- The test should allow specifying the language server package
```js
import { TestLSP } from "atom-languageclient"
import DLanguageServer from "../lib"

const testLSP = new TestLSP(DLanguageServer)
```

- The test should accept custom data as input and expected (e.g. autocomplete query and the expected value)

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing tests in atom-languageclient and identify the parts that depend on one exact language server. Define the TestLSP entry point shown in the issue, support custom input and expected output such as autocomplete data, and confirm the generalized tests can be reused by different language-server clients.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
developer-experience, testing
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.