@tui-sandbox/library 2.0.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/src/client/neovim-client.d.ts +2 -1
- package/dist/src/client/neovim-client.js +12 -3
- package/dist/src/server/TestServer.d.ts +1 -1
- package/dist/src/server/TestServer.js +15 -24
- package/dist/src/server/connection/trpc.d.ts +7 -15
- package/dist/src/server/connection/trpc.js +0 -3
- package/dist/src/server/neovim/NeovimApplication.d.ts +3 -2
- package/dist/src/server/neovim/NeovimApplication.js +21 -13
- package/dist/src/server/neovim/environment/createTempDir.test.js +1 -0
- package/dist/src/server/neovim/index.d.ts +1 -2
- package/dist/src/server/neovim/index.js +15 -21
- package/dist/src/server/server.d.ts +8 -7
- package/dist/src/server/server.js +9 -3
- package/dist/src/server/server.test.d.ts +1 -0
- package/dist/src/server/server.test.js +23 -0
- package/dist/src/server/updateTestdirectorySchemaFile.d.ts +2 -1
- package/dist/src/server/updateTestdirectorySchemaFile.js +4 -0
- package/dist/src/server/updateTestdirectorySchemaFile.test.d.ts +1 -0
- package/dist/src/server/updateTestdirectorySchemaFile.test.js +34 -0
- package/dist/src/server/utilities/DisposableSingleApplication.d.ts +6 -8
- package/dist/src/server/utilities/DisposableSingleApplication.js +9 -9
- package/dist/src/server/utilities/DisposableSingleApplication.test.d.ts +1 -0
- package/dist/src/server/utilities/DisposableSingleApplication.test.js +55 -0
- package/dist/src/server/utilities/TerminalApplication.d.ts +2 -1
- package/dist/src/server/utilities/applicationAvailable.d.ts +1 -0
- package/dist/src/server/utilities/applicationAvailable.js +4 -0
- package/dist/src/server/utilities/applicationAvailable.test.d.ts +1 -0
- package/dist/src/server/utilities/applicationAvailable.test.js +12 -0
- package/dist/src/server/utilities/generator.d.ts +2 -0
- package/dist/src/server/utilities/generator.js +8 -0
- package/dist/src/server/utilities/generator.test.d.ts +1 -0
- package/dist/src/server/utilities/generator.test.js +41 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/vitest.config.d.ts +2 -0
- package/dist/vitest.config.js +8 -0
- package/package.json +13 -10
- package/src/client/neovim-client.ts +14 -4
- package/src/server/TestServer.ts +17 -25
- package/src/server/connection/trpc.ts +1 -15
- package/src/server/neovim/NeovimApplication.ts +24 -14
- package/src/server/neovim/environment/createTempDir.test.ts +2 -0
- package/src/server/neovim/index.ts +25 -27
- package/src/server/server.test.ts +34 -0
- package/src/server/server.ts +11 -4
- package/src/server/updateTestdirectorySchemaFile.test.ts +43 -0
- package/src/server/updateTestdirectorySchemaFile.ts +7 -2
- package/src/server/utilities/DisposableSingleApplication.test.ts +70 -0
- package/src/server/utilities/DisposableSingleApplication.ts +17 -12
- package/src/server/utilities/TerminalApplication.ts +2 -1
- package/src/server/utilities/applicationAvailable.test.ts +14 -0
- package/src/server/utilities/applicationAvailable.ts +5 -0
- package/src/server/utilities/generator.test.ts +49 -0
- package/src/server/utilities/generator.ts +13 -0
- package/tsconfig.json +2 -2
- package/vitest.config.ts +9 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type winston from "winston";
|
|
2
2
|
import type { ITerminalDimensions } from "@xterm/addon-fit";
|
|
3
|
-
|
|
3
|
+
import type { StartableApplication } from "./DisposableSingleApplication";
|
|
4
|
+
export declare class TerminalApplication implements StartableApplication {
|
|
4
5
|
private readonly subProcess;
|
|
5
6
|
readonly onStdoutOrStderr: (data: string) => void;
|
|
6
7
|
readonly processId: number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function applicationAvailable(command: string): Promise<string | null>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { applicationAvailable } from "./applicationAvailable";
|
|
2
|
+
describe("sanity checks for mocking", () => {
|
|
3
|
+
// because it makes no sense to mock the actual implementation if we don't
|
|
4
|
+
// know what it does in the current version, we better check what it's
|
|
5
|
+
// expected to do
|
|
6
|
+
it("can find neovim using the actual implementation", async () => {
|
|
7
|
+
await expect(applicationAvailable("nvim")).resolves.toBe("nvim");
|
|
8
|
+
});
|
|
9
|
+
it("complains when a nonexistent command is checked", async () => {
|
|
10
|
+
await expect(applicationAvailable("thisCommandDoesNotExist")).rejects.toBe(null);
|
|
11
|
+
});
|
|
12
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { EventEmitter } from "stream";
|
|
2
|
+
import { convertEventEmitterToAsyncGenerator } from "./generator";
|
|
3
|
+
describe("when a listener is attached", () => {
|
|
4
|
+
it("forwards events from an EventEmitter to an async generator", async () => {
|
|
5
|
+
const eventEmitter = new EventEmitter();
|
|
6
|
+
const generator = convertEventEmitterToAsyncGenerator(eventEmitter, "test");
|
|
7
|
+
{
|
|
8
|
+
const promise = generator.next();
|
|
9
|
+
eventEmitter.emit("test", "message");
|
|
10
|
+
expect(await promise).toMatchInlineSnapshot(`
|
|
11
|
+
{
|
|
12
|
+
"done": false,
|
|
13
|
+
"value": "message",
|
|
14
|
+
}
|
|
15
|
+
`);
|
|
16
|
+
const promise2 = generator.next();
|
|
17
|
+
eventEmitter.emit("test", "message2");
|
|
18
|
+
expect(await promise2).toMatchInlineSnapshot(`
|
|
19
|
+
{
|
|
20
|
+
"done": false,
|
|
21
|
+
"value": "message2",
|
|
22
|
+
}
|
|
23
|
+
`);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
describe("when no listener is attached, messages are lost permanently", () => {
|
|
28
|
+
it("does not resend lost events after a subscriber attaches", async () => {
|
|
29
|
+
const eventEmitter = new EventEmitter();
|
|
30
|
+
eventEmitter.emit("test", "this message should be lost");
|
|
31
|
+
const generator = convertEventEmitterToAsyncGenerator(eventEmitter, "test");
|
|
32
|
+
const promise = generator.next();
|
|
33
|
+
eventEmitter.emit("test", "new message that will be received");
|
|
34
|
+
expect(await promise).toMatchInlineSnapshot(`
|
|
35
|
+
{
|
|
36
|
+
"done": false,
|
|
37
|
+
"value": "new message that will be received",
|
|
38
|
+
}
|
|
39
|
+
`);
|
|
40
|
+
});
|
|
41
|
+
});
|