@tui-sandbox/library 12.7.3 → 13.0.1
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/dist/src/scripts/commands/commandTuiNeovimExec.d.ts +1 -1
- package/dist/src/scripts/commands/commandTuiNeovimExec.js +6 -6
- package/dist/src/scripts/commands/commandTuiNeovimExec.js.map +1 -1
- package/dist/src/scripts/tui.js.map +1 -1
- package/dist/src/server/applications/neovim/NeovimApplication.d.ts +3 -2
- package/dist/src/server/applications/neovim/NeovimApplication.js +17 -8
- package/dist/src/server/applications/neovim/NeovimApplication.js.map +1 -1
- package/dist/src/server/applications/neovim/api.d.ts +1 -1
- package/dist/src/server/applications/neovim/api.js +4 -4
- package/dist/src/server/applications/neovim/api.js.map +1 -1
- package/dist/src/server/applications/neovim/environment/resolveMiseBinPaths.d.ts +29 -0
- package/dist/src/server/applications/neovim/environment/resolveMiseBinPaths.js +41 -0
- package/dist/src/server/applications/neovim/environment/resolveMiseBinPaths.js.map +1 -0
- package/dist/src/server/applications/neovim/environment/resolveMiseBinPaths.test.d.ts +1 -0
- package/dist/src/server/applications/neovim/environment/resolveMiseBinPaths.test.js +50 -0
- package/dist/src/server/applications/neovim/environment/resolveMiseBinPaths.test.js.map +1 -0
- package/dist/src/server/applications/neovim/neovimRouter.js +1 -1
- package/dist/src/server/applications/neovim/neovimRouter.js.map +1 -1
- package/dist/src/server/applications/terminal/TerminalTestApplication.d.ts +3 -2
- package/dist/src/server/applications/terminal/TerminalTestApplication.js +16 -7
- package/dist/src/server/applications/terminal/TerminalTestApplication.js.map +1 -1
- package/dist/src/server/applications/terminal/api.d.ts +1 -1
- package/dist/src/server/applications/terminal/api.js +3 -3
- package/dist/src/server/applications/terminal/api.js.map +1 -1
- package/dist/src/server/applications/terminal/terminalRouter.js +1 -1
- package/dist/src/server/applications/terminal/terminalRouter.js.map +1 -1
- package/dist/src/server/types.d.ts +2 -0
- package/dist/src/server/updateTestdirectorySchemaFile.d.ts +1 -0
- package/dist/src/server/updateTestdirectorySchemaFile.js +2 -0
- package/dist/src/server/updateTestdirectorySchemaFile.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/server/cypress-support/tui-sandbox-template.ts +2 -2
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { TestServerConfigMetadata } from "../../server/updateTestdirectorySchemaFile.js";
|
|
2
2
|
import type { NeovimExec } from "../parseArguments.js";
|
|
3
|
-
export declare function commandTuiNeovimExec(command: NeovimExec,
|
|
3
|
+
export declare function commandTuiNeovimExec(command: NeovimExec, configMeta: TestServerConfigMetadata): Promise<void>;
|
|
@@ -52,23 +52,23 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
|
|
|
52
52
|
});
|
|
53
53
|
import { NeovimApplication } from "../../server/applications/neovim/NeovimApplication.js";
|
|
54
54
|
import { prepareNewTestDirectory } from "../../server/applications/neovim/prepareNewTestDirectory.js";
|
|
55
|
-
export async function commandTuiNeovimExec(command,
|
|
55
|
+
export async function commandTuiNeovimExec(command, configMeta) {
|
|
56
56
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
57
57
|
try {
|
|
58
58
|
// automatically dispose of the neovim instance when done
|
|
59
|
-
const app = __addDisposableResource(env_1, new NeovimApplication(
|
|
59
|
+
const app = __addDisposableResource(env_1, new NeovimApplication(configMeta.config.directories.testEnvironmentPath), true);
|
|
60
60
|
app.events.on("stdout", data => {
|
|
61
61
|
console.log(` neovim output: ${data}`);
|
|
62
62
|
});
|
|
63
|
-
const testDirectory = await prepareNewTestDirectory(
|
|
63
|
+
const testDirectory = await prepareNewTestDirectory(configMeta.config);
|
|
64
64
|
const NVIM_APPNAME = process.env["NVIM_APPNAME"];
|
|
65
|
-
if (NVIM_APPNAME && !
|
|
65
|
+
if (NVIM_APPNAME && !configMeta.config.integrations.neovim.NVIM_APPNAMEs.find(n => n === NVIM_APPNAME)) {
|
|
66
66
|
process.exitCode = 1;
|
|
67
|
-
const message = `The NVIM_APPNAME environment variable is set to "${NVIM_APPNAME}", but only the following neovim configurations are known in the configuration file: ${JSON.stringify(
|
|
67
|
+
const message = `The NVIM_APPNAME environment variable is set to "${NVIM_APPNAME}", but only the following neovim configurations are known in the configuration file: ${JSON.stringify(configMeta.config.integrations.neovim.NVIM_APPNAMEs)}. Please set NVIM_APPNAME to one of the configured names or unset it to use the default ("nvim"). Config file path: ${configMeta.configFilePath}`;
|
|
68
68
|
console.error(message);
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
|
-
await app.startNextAndKillCurrent(testDirectory, {
|
|
71
|
+
await app.startNextAndKillCurrent(configMeta.config, testDirectory, {
|
|
72
72
|
filename: "empty.txt",
|
|
73
73
|
headlessCmd: command.command,
|
|
74
74
|
NVIM_APPNAME,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandTuiNeovimExec.js","sourceRoot":"","sources":["../../../../src/scripts/commands/commandTuiNeovimExec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,uDAAuD,CAAA;AACrH,OAAO,EAAE,uBAAuB,EAAE,MAAM,6DAA6D,CAAA;AAIrG,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"commandTuiNeovimExec.js","sourceRoot":"","sources":["../../../../src/scripts/commands/commandTuiNeovimExec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,uDAAuD,CAAA;AACrH,OAAO,EAAE,uBAAuB,EAAE,MAAM,6DAA6D,CAAA;AAIrG,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAmB,EAAE,UAAoC;;;QAClG,yDAAyD;QACzD,MAAY,GAAG,kCAAG,IAAI,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAA,CAAA;QAC1F,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,QAAwC,EAAE,IAAI,CAAC,EAAE;YAC7D,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QACF,MAAM,aAAa,GAAG,MAAM,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACtE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAEhD,IAAI,YAAY,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,EAAE,CAAC;YACvG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,MAAM,OAAO,GAAG,oDAAoD,YAAY,wFAAwF,IAAI,CAAC,SAAS,CACpL,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CACpD,uHAAuH,UAAU,CAAC,cAAc,EAAE,CAAA;YAEnJ,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAEtB,OAAM;QACR,CAAC;QAED,MAAM,GAAG,CAAC,uBAAuB,CAC/B,UAAU,CAAC,MAAM,EACjB,aAAa,EACb;YACE,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,OAAO,CAAC,OAAO;YAC5B,YAAY;SACb,EACD,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACvB,CAAA;QACD,MAAM,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,CAAA;;;;;;;;;;;CAClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../../src/scripts/tui.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAIhC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../../src/scripts/tui.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAIhC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,EAAE;AACF,6CAA6C;AAC7C,EAAE;AAEF,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC5D,MAAM,CAAC,KAAK,CAAC,CAAA;AACb,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AAErB,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,mEAAmE,OAAO,CAAC,OAAO,GAAG,CAAC,CAAA;IACpG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED;+BAC+B;AAC/B,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;AAChC,MAAM,YAAY,GAA2B,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAA;AACxE,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;IACvB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;IACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,uDAAuD;AACvD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClC,MAAM,MAAM,GAA6B,YAAY,CAAC,MAAM,CAAA;AAC5D,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;AAE1C,QAAQ,OAAO,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,gBAAgB,CAAC,CAAC,CAAC;QACtB,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAA;QACrC,MAAK;IACP,CAAC;IACD,KAAK,aAAa,CAAC,CAAC,CAAC;QACnB,MAAM,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC3C,MAAK;IACP,CAAC;IACD,KAAK,OAAO,CAAC,CAAC,CAAC;QACb,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;QAC7B,MAAK;IACP,CAAC;IACD,KAAK,SAAS,CAAC,CAAC,CAAC;QACf,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAA;QACjC,MAAK;IACP,CAAC;IACD,KAAK,KAAK,CAAC,CAAC,CAAC;QACX,MAAM,MAAM,GAAuB,MAAM,UAAU,EAAE,CAAA;QACrD,aAAa;QACb,EAAE;QACF,iEAAiE;QACjE,OAAO,CAAC,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1D,MAAK;IACP,CAAC;IACD,KAAK,SAAS,CAAC,CAAC,CAAC;QACf,OAA2B,CAAA;QAC3B,gBAAgB,EAAE,CAAA;IACpB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,CAAC,GAAG,CACT;QACE,EAAE;QACF,mBAAmB;QACnB,eAAe;QACf,iBAAiB;QACjB,oCAAoC;QACpC,wBAAwB;KACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import EventEmitter from "events";
|
|
2
2
|
import type { NeovimClient as NeovimApiClient } from "neovim";
|
|
3
3
|
import type { TestDirectory } from "../../types.js";
|
|
4
|
+
import type { TestServerConfig } from "../../updateTestdirectorySchemaFile.js";
|
|
4
5
|
import { DisposableSingleApplication } from "../../utilities/DisposableSingleApplication.js";
|
|
5
6
|
import type { Lazy } from "../../utilities/Lazy.js";
|
|
6
7
|
import { XdgRuntimeDirectory } from "./environment/XdgRuntimeDirectory.js";
|
|
@@ -48,8 +49,8 @@ export declare class NeovimApplication implements AsyncDisposable {
|
|
|
48
49
|
/**
|
|
49
50
|
* Kill the current application and start a new one with the given arguments.
|
|
50
51
|
*/
|
|
51
|
-
startNextAndKillCurrent(testDirectory: TestDirectory, startArgs: StartNeovimGenericArguments, terminalDimensions: TerminalDimensions): Promise<void>;
|
|
52
|
-
static getEnvironmentVariables(testDirectory: TestDirectory, xdgRuntimeDir: string, NVIM_APPNAME: string | undefined, additionalEnvironmentVariables?: Record<string, string>): Record<string, string>;
|
|
52
|
+
startNextAndKillCurrent(config: TestServerConfig, testDirectory: TestDirectory, startArgs: StartNeovimGenericArguments, terminalDimensions: TerminalDimensions): Promise<void>;
|
|
53
|
+
static getEnvironmentVariables(config: TestServerConfig, testDirectory: TestDirectory, xdgRuntimeDir: string, NVIM_APPNAME: string | undefined, additionalEnvironmentVariables?: Record<string, string>): Record<string, string>;
|
|
53
54
|
[Symbol.asyncDispose](): Promise<void>;
|
|
54
55
|
}
|
|
55
56
|
export {};
|
|
@@ -7,6 +7,7 @@ import path, { join } from "path";
|
|
|
7
7
|
import { debuglog } from "util";
|
|
8
8
|
import { DisposableSingleApplication } from "../../utilities/DisposableSingleApplication.js";
|
|
9
9
|
import { TerminalApplication } from "../../utilities/TerminalApplication.js";
|
|
10
|
+
import { prependMiseBinPathsToPath, resolveMiseBinPaths } from "./environment/resolveMiseBinPaths.js";
|
|
10
11
|
import { resolveMiseStateDirectory } from "./environment/resolveMiseStateDirectory.js";
|
|
11
12
|
import { XdgRuntimeDirectory } from "./environment/XdgRuntimeDirectory.js";
|
|
12
13
|
import { connectNeovimApi } from "./NeovimJavascriptApiClient.js";
|
|
@@ -24,7 +25,7 @@ export class NeovimApplication {
|
|
|
24
25
|
/**
|
|
25
26
|
* Kill the current application and start a new one with the given arguments.
|
|
26
27
|
*/
|
|
27
|
-
async startNextAndKillCurrent(testDirectory, startArgs, terminalDimensions) {
|
|
28
|
+
async startNextAndKillCurrent(config, testDirectory, startArgs, terminalDimensions) {
|
|
28
29
|
await this[Symbol.asyncDispose]();
|
|
29
30
|
assert(this.state === undefined, "NeovimApplication state should be undefined after disposing so that no previous state is reused.");
|
|
30
31
|
const neovimArguments = [];
|
|
@@ -65,7 +66,7 @@ export class NeovimApplication {
|
|
|
65
66
|
const xdgRuntimeDirectory = await XdgRuntimeDirectory.create(testDirectory.rootPathAbsolute);
|
|
66
67
|
const stdout = this.events;
|
|
67
68
|
await this.application.startNextAndKillCurrent(async () => {
|
|
68
|
-
const env = NeovimApplication.getEnvironmentVariables(testDirectory, xdgRuntimeDirectory.path, startArgs.NVIM_APPNAME, startArgs.additionalEnvironmentVariables);
|
|
69
|
+
const env = NeovimApplication.getEnvironmentVariables(config, testDirectory, xdgRuntimeDirectory.path, startArgs.NVIM_APPNAME, startArgs.additionalEnvironmentVariables);
|
|
69
70
|
return TerminalApplication.start({
|
|
70
71
|
command: "nvim",
|
|
71
72
|
args: neovimArguments,
|
|
@@ -91,9 +92,8 @@ export class NeovimApplication {
|
|
|
91
92
|
};
|
|
92
93
|
log(`🚀 Started Neovim instance ${processId} (NVIM_APPNAME: ${startArgs.NVIM_APPNAME})`);
|
|
93
94
|
}
|
|
94
|
-
static getEnvironmentVariables(testDirectory, xdgRuntimeDir, NVIM_APPNAME, additionalEnvironmentVariables) {
|
|
95
|
-
|
|
96
|
-
return {
|
|
95
|
+
static getEnvironmentVariables(config, testDirectory, xdgRuntimeDir, NVIM_APPNAME, additionalEnvironmentVariables) {
|
|
96
|
+
let env = {
|
|
97
97
|
...process.env,
|
|
98
98
|
...{
|
|
99
99
|
HOME: testDirectory.rootPathAbsolute,
|
|
@@ -101,12 +101,21 @@ export class NeovimApplication {
|
|
|
101
101
|
XDG_DATA_HOME: join(testDirectory.testEnvironmentPath, ".repro", "data"),
|
|
102
102
|
XDG_RUNTIME_DIR: xdgRuntimeDir,
|
|
103
103
|
TUI_SANDBOX_TEST_ENVIRONMENT_PATH: testDirectory.testEnvironmentPath,
|
|
104
|
-
...(miseStateDirectory ? { MISE_STATE_DIR: miseStateDirectory } : {}),
|
|
105
|
-
MISE_OFFLINE: "1",
|
|
106
104
|
},
|
|
107
105
|
NVIM_APPNAME: NVIM_APPNAME ?? "nvim",
|
|
108
|
-
...additionalEnvironmentVariables,
|
|
109
106
|
};
|
|
107
|
+
if (config.integrations.mise) {
|
|
108
|
+
const miseStateDirectory = resolveMiseStateDirectory();
|
|
109
|
+
Object.assign(env, {
|
|
110
|
+
...(miseStateDirectory ? { MISE_STATE_DIR: miseStateDirectory } : {}),
|
|
111
|
+
MISE_OFFLINE: "1",
|
|
112
|
+
});
|
|
113
|
+
// put mise-managed tools' real install dirs on PATH so they are
|
|
114
|
+
// invocable in the isolated env (shims can't re-resolve there)
|
|
115
|
+
env = prependMiseBinPathsToPath(env, resolveMiseBinPaths());
|
|
116
|
+
}
|
|
117
|
+
Object.assign(env, additionalEnvironmentVariables ?? {});
|
|
118
|
+
return env;
|
|
110
119
|
}
|
|
111
120
|
async [Symbol.asyncDispose]() {
|
|
112
121
|
await this.application[Symbol.asyncDispose]();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeovimApplication.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/NeovimApplication.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,YAAY,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAC3B,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"NeovimApplication.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/NeovimApplication.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export declare function sendStdin(options: {
|
|
|
13
13
|
tabId: TabId;
|
|
14
14
|
data: string;
|
|
15
15
|
}): Promise<void>;
|
|
16
|
-
export declare function runBlockingShellCommand(signal: AbortSignal | undefined, input: BlockingCommandInput, allowFailure: boolean): Promise<BlockingShellCommandOutput>;
|
|
16
|
+
export declare function runBlockingShellCommand(config: TestServerConfig, signal: AbortSignal | undefined, input: BlockingCommandInput, allowFailure: boolean): Promise<BlockingShellCommandOutput>;
|
|
17
17
|
export declare function runLuaCode(options: LuaCodeInput): Promise<RunLuaCodeOutput>;
|
|
18
18
|
export type PollLuaCodeInput = {
|
|
19
19
|
luaAssertion: string;
|
|
@@ -90,7 +90,7 @@ export async function installDependencies(NVIM_APPNAME, config) {
|
|
|
90
90
|
assert(typeof data === "string");
|
|
91
91
|
output += data;
|
|
92
92
|
});
|
|
93
|
-
await app.startNextAndKillCurrent(testDirectory, {
|
|
93
|
+
await app.startNextAndKillCurrent(config, testDirectory, {
|
|
94
94
|
filename: "empty.txt",
|
|
95
95
|
headlessCmd: `lua dofile("${prepareFilePath}")`,
|
|
96
96
|
NVIM_APPNAME,
|
|
@@ -132,7 +132,7 @@ export async function start(options, terminalDimensions, tabId, config) {
|
|
|
132
132
|
const neovim = neovims.get(tabId.tabId);
|
|
133
133
|
assert(neovim, `Neovim instance not found for client id ${tabId.tabId}`);
|
|
134
134
|
const testDirectory = await prepareNewTestDirectory(config);
|
|
135
|
-
await neovim.startNextAndKillCurrent(testDirectory, options, terminalDimensions);
|
|
135
|
+
await neovim.startNextAndKillCurrent(config, testDirectory, options, terminalDimensions);
|
|
136
136
|
return testDirectory;
|
|
137
137
|
}
|
|
138
138
|
export async function sendStdin(options) {
|
|
@@ -141,14 +141,14 @@ export async function sendStdin(options) {
|
|
|
141
141
|
assert(neovim.application, `Neovim application not found for client id ${options.tabId.tabId}. Maybe it's not started yet?`);
|
|
142
142
|
await neovim.application.write(options.data);
|
|
143
143
|
}
|
|
144
|
-
export async function runBlockingShellCommand(signal, input, allowFailure) {
|
|
144
|
+
export async function runBlockingShellCommand(config, signal, input, allowFailure) {
|
|
145
145
|
const neovim = neovims.get(input.tabId.tabId);
|
|
146
146
|
assert(neovim !== undefined, `Neovim instance for clientId not found - cannot run blocking shell command. Maybe neovim's not started yet?`);
|
|
147
147
|
const testDirectory = neovim.state?.testDirectory;
|
|
148
148
|
assert(testDirectory, `Test directory not found for client id ${input.tabId.tabId}. Maybe neovim's not started yet?`);
|
|
149
149
|
const xdgRuntimeDirectory = neovim.state?.xdgRuntimeDirectory;
|
|
150
150
|
assert(xdgRuntimeDirectory, `XDG runtime directory not found for client id ${input.tabId.tabId}. Maybe neovim's not started yet?`);
|
|
151
|
-
const env = NeovimApplication.getEnvironmentVariables(testDirectory, xdgRuntimeDirectory.path, neovim.state?.NVIM_APPNAME, input.envOverrides);
|
|
151
|
+
const env = NeovimApplication.getEnvironmentVariables(config, testDirectory, xdgRuntimeDirectory.path, neovim.state?.NVIM_APPNAME, input.envOverrides);
|
|
152
152
|
return executeBlockingShellCommand(testDirectory, input, signal, allowFailure, env);
|
|
153
153
|
}
|
|
154
154
|
export async function runLuaCode(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves the bin directories of the currently active, installed mise tools.
|
|
3
|
+
*
|
|
4
|
+
* IMPORTANT: resolve this from the *real* server environment, never from the
|
|
5
|
+
* isolated terminal env.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: the selection of tools is assumed stable for the lifetime of the
|
|
8
|
+
* server process - if you change the mise toolset, you must restart the server
|
|
9
|
+
* to pick up new bin paths.
|
|
10
|
+
*
|
|
11
|
+
* Issue:
|
|
12
|
+
*
|
|
13
|
+
* The test terminal runs in a lightly-isolated environment, where a mise
|
|
14
|
+
* *shim* cannot reliably re-resolve a tool -> version -> backend, so invoking
|
|
15
|
+
* e.g. `lazygit` through its shim fails with "lazygit is not a valid shim" /
|
|
16
|
+
* "No version is set for shim".
|
|
17
|
+
*
|
|
18
|
+
* Solution:
|
|
19
|
+
*
|
|
20
|
+
* Put the tools' real install dirs directly on `$PATH` so they become plain
|
|
21
|
+
* executables, working around the issue.
|
|
22
|
+
*/
|
|
23
|
+
export type RunMiseBinPaths = (cwd: string, environment: NodeJS.ProcessEnv) => string;
|
|
24
|
+
/** Parses the newline-separated output of `mise bin-paths`. */
|
|
25
|
+
export declare const parseMiseBinPaths: (stdout: string) => string[];
|
|
26
|
+
export declare const resolveMiseBinPaths: (cwd?: string, environment?: NodeJS.ProcessEnv, run?: RunMiseBinPaths) => string[];
|
|
27
|
+
/** @private Test-only: forget memoized results so each test resolves fresh. */
|
|
28
|
+
export declare const clearMiseBinPathsCache: () => void;
|
|
29
|
+
export declare const prependMiseBinPathsToPath: (env: Record<string, string>, binPaths: string[]) => Record<string, string>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { execFileSync } from "child_process";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { debuglog } from "util";
|
|
4
|
+
const log = debuglog("tui-sandbox.mise");
|
|
5
|
+
const runMiseBinPaths = (cwd, environment) => execFileSync("mise", ["bin-paths"], {
|
|
6
|
+
cwd,
|
|
7
|
+
env: environment,
|
|
8
|
+
encoding: "utf8",
|
|
9
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
10
|
+
});
|
|
11
|
+
/** Parses the newline-separated output of `mise bin-paths`. */
|
|
12
|
+
export const parseMiseBinPaths = (stdout) => stdout
|
|
13
|
+
.split("\n")
|
|
14
|
+
.map(line => line.trim())
|
|
15
|
+
.filter(line => line.length > 0);
|
|
16
|
+
// `mise bin-paths` is stable for the lifetime of the server process. Memoize
|
|
17
|
+
// per working directory to avoid shelling out when starting every test.
|
|
18
|
+
const cache = new Map();
|
|
19
|
+
export const resolveMiseBinPaths = (cwd = process.cwd(), environment = process.env, run = runMiseBinPaths) => {
|
|
20
|
+
const cached = cache.get(cwd);
|
|
21
|
+
if (cached)
|
|
22
|
+
return cached;
|
|
23
|
+
const binPaths = parseMiseBinPaths(run(cwd, environment));
|
|
24
|
+
log(`Resolved ${binPaths.length} mise bin path(s) from ${cwd}`);
|
|
25
|
+
cache.set(cwd, binPaths);
|
|
26
|
+
return binPaths;
|
|
27
|
+
};
|
|
28
|
+
/** @private Test-only: forget memoized results so each test resolves fresh. */
|
|
29
|
+
export const clearMiseBinPathsCache = () => {
|
|
30
|
+
cache.clear();
|
|
31
|
+
};
|
|
32
|
+
export const prependMiseBinPathsToPath = (env, binPaths) => {
|
|
33
|
+
if (binPaths.length === 0)
|
|
34
|
+
return env;
|
|
35
|
+
const existing = env["PATH"] ?? "";
|
|
36
|
+
return {
|
|
37
|
+
...env,
|
|
38
|
+
PATH: [...binPaths, ...(existing ? [existing] : [])].join(path.delimiter),
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=resolveMiseBinPaths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveMiseBinPaths.js","sourceRoot":"","sources":["../../../../../../src/server/applications/neovim/environment/resolveMiseBinPaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAE/B,MAAM,GAAG,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAA;AA0BxC,MAAM,eAAe,GAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAC5D,YAAY,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE;IAClC,GAAG;IACH,GAAG,EAAE,WAAW;IAChB,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;CAClC,CAAC,CAAA;AAEJ,+DAA+D;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAY,EAAE,CAC5D,MAAM;KACH,KAAK,CAAC,IAAI,CAAC;KACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACxB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAEpC,6EAA6E;AAC7E,wEAAwE;AACxE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAA;AAEzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAc,OAAO,CAAC,GAAG,EAAE,EAC3B,cAAiC,OAAO,CAAC,GAAG,EAC5C,MAAuB,eAAe,EAC5B,EAAE;IACZ,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,MAAM,QAAQ,GAAa,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAA;IACnE,GAAG,CAAC,YAAY,QAAQ,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC,CAAA;IAC/D,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IACxB,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAS,EAAE;IAC/C,KAAK,CAAC,KAAK,EAAE,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAA2B,EAAE,QAAkB,EAA0B,EAAE;IACnH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAClC,OAAO;QACL,GAAG,GAAG;QACN,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;KAC1E,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { afterEach, expect, it } from "vitest";
|
|
2
|
+
import { clearMiseBinPathsCache, parseMiseBinPaths, prependMiseBinPathsToPath, resolveMiseBinPaths, } from "./resolveMiseBinPaths.js";
|
|
3
|
+
afterEach(() => {
|
|
4
|
+
clearMiseBinPathsCache();
|
|
5
|
+
});
|
|
6
|
+
it("parses newline-separated bin paths and ignores blank lines", () => {
|
|
7
|
+
expect(parseMiseBinPaths("/a/bin\n/b/bin\n\n /c/bin \n")).toEqual(["/a/bin", "/b/bin", "/c/bin"]);
|
|
8
|
+
});
|
|
9
|
+
it("resolves the parsed output of `mise bin-paths`", () => {
|
|
10
|
+
const binPaths = resolveMiseBinPaths("/repo", {}, () => "/a/bin\n/b/bin\n");
|
|
11
|
+
expect(binPaths).toEqual(["/a/bin", "/b/bin"]);
|
|
12
|
+
});
|
|
13
|
+
it("memoizes per working directory (only shells out once)", () => {
|
|
14
|
+
let calls = 0;
|
|
15
|
+
const run = () => {
|
|
16
|
+
calls++;
|
|
17
|
+
return "/a/bin\n";
|
|
18
|
+
};
|
|
19
|
+
resolveMiseBinPaths("/repo", {}, run);
|
|
20
|
+
resolveMiseBinPaths("/repo", {}, run);
|
|
21
|
+
expect(calls).toBe(1);
|
|
22
|
+
});
|
|
23
|
+
it("crashes when mise is not installed", () => {
|
|
24
|
+
// The mise integration is opt-in, so a failure here means the user asked for
|
|
25
|
+
// mise but it could not be used. resolveMiseBinPaths must crash rather than
|
|
26
|
+
// silently continue, so the misconfiguration is not hidden.
|
|
27
|
+
expect(() => resolveMiseBinPaths("/repo", {}, () => {
|
|
28
|
+
throw Object.assign(new Error("spawn mise ENOENT"), { code: "ENOENT" });
|
|
29
|
+
})).toThrow(/ENOENT/);
|
|
30
|
+
});
|
|
31
|
+
it("crashes when `mise bin-paths` exits non-zero", () => {
|
|
32
|
+
expect(() => resolveMiseBinPaths("/repo", {}, () => {
|
|
33
|
+
throw new Error("Command failed");
|
|
34
|
+
})).toThrow(/Command failed/);
|
|
35
|
+
});
|
|
36
|
+
it("prepends bin paths so mise-managed tools win over system copies", () => {
|
|
37
|
+
const env = prependMiseBinPathsToPath({ PATH: "/usr/bin:/bin" }, ["/mise/lazygit/bin", "/mise/delta/bin"]);
|
|
38
|
+
expect(env["PATH"]).toBe("/mise/lazygit/bin:/mise/delta/bin:/usr/bin:/bin");
|
|
39
|
+
});
|
|
40
|
+
it("leaves the env untouched when there are no bin paths", () => {
|
|
41
|
+
const original = { PATH: "/usr/bin", HOME: "/home/user" };
|
|
42
|
+
expect(prependMiseBinPathsToPath(original, [])).toEqual(original);
|
|
43
|
+
});
|
|
44
|
+
it("handles a missing PATH", () => {
|
|
45
|
+
expect(prependMiseBinPathsToPath({ HOME: "/home/user" }, ["/mise/lazygit/bin"])).toEqual({
|
|
46
|
+
HOME: "/home/user",
|
|
47
|
+
PATH: "/mise/lazygit/bin",
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=resolveMiseBinPaths.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveMiseBinPaths.test.js","sourceRoot":"","sources":["../../../../../../src/server/applications/neovim/environment/resolveMiseBinPaths.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,7 +58,7 @@ export function createNeovimRouter(config) {
|
|
|
58
58
|
return neovim.sendStdin(options.input);
|
|
59
59
|
}),
|
|
60
60
|
runBlockingShellCommand: trpc.procedure.input(blockingCommandInputSchema).mutation(async (options) => {
|
|
61
|
-
return neovim.runBlockingShellCommand(options.signal, options.input, options.input.allowFailure ?? false);
|
|
61
|
+
return neovim.runBlockingShellCommand(config, options.signal, options.input, options.input.allowFailure ?? false);
|
|
62
62
|
}),
|
|
63
63
|
runLuaCode: trpc.procedure.input(luaCodeInputSchema).mutation(options => {
|
|
64
64
|
return timeoutable(10_000, neovim.runLuaCode(options.input));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"neovimRouter.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/neovimRouter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"neovimRouter.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/neovimRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import EventEmitter from "events";
|
|
2
2
|
import type { TestDirectory } from "../../types.js";
|
|
3
|
+
import type { TestServerConfig } from "../../updateTestdirectorySchemaFile.js";
|
|
3
4
|
import { DisposableSingleApplication } from "../../utilities/DisposableSingleApplication.js";
|
|
4
5
|
import { XdgRuntimeDirectory } from "../neovim/environment/XdgRuntimeDirectory.js";
|
|
5
6
|
import type { StdoutOrStderrMessage, TerminalDimensions } from "../neovim/NeovimApplication.js";
|
|
@@ -17,7 +18,7 @@ export default class TerminalTestApplication implements AsyncDisposable {
|
|
|
17
18
|
state: ResettableState | undefined;
|
|
18
19
|
readonly events: EventEmitter;
|
|
19
20
|
constructor(application?: DisposableSingleApplication);
|
|
20
|
-
startNextAndKillCurrent(testDirectory: TestDirectory, startArgs: StartTerminalGenericArguments, terminalDimensions: TerminalDimensions): Promise<void>;
|
|
21
|
-
getEnvironmentVariables(testDirectory: TestDirectory, xdgRuntimeDir: string, additionalEnvironmentVariables?: Record<string, string>): Record<string, string>;
|
|
21
|
+
startNextAndKillCurrent(config: TestServerConfig, testDirectory: TestDirectory, startArgs: StartTerminalGenericArguments, terminalDimensions: TerminalDimensions): Promise<void>;
|
|
22
|
+
getEnvironmentVariables(config: TestServerConfig, testDirectory: TestDirectory, xdgRuntimeDir: string, additionalEnvironmentVariables?: Record<string, string>): Record<string, string>;
|
|
22
23
|
[Symbol.asyncDispose](): Promise<void>;
|
|
23
24
|
}
|
|
@@ -5,6 +5,7 @@ import { join } from "path";
|
|
|
5
5
|
import { debuglog } from "util";
|
|
6
6
|
import { DisposableSingleApplication } from "../../utilities/DisposableSingleApplication.js";
|
|
7
7
|
import { TerminalApplication } from "../../utilities/TerminalApplication.js";
|
|
8
|
+
import { prependMiseBinPathsToPath, resolveMiseBinPaths } from "../neovim/environment/resolveMiseBinPaths.js";
|
|
8
9
|
import { resolveMiseStateDirectory } from "../neovim/environment/resolveMiseStateDirectory.js";
|
|
9
10
|
import { XdgRuntimeDirectory } from "../neovim/environment/XdgRuntimeDirectory.js";
|
|
10
11
|
const log = debuglog("tui-sandbox.terminal.TerminalTestApplication");
|
|
@@ -16,7 +17,7 @@ export default class TerminalTestApplication {
|
|
|
16
17
|
this.application = application;
|
|
17
18
|
this.events = new EventEmitter();
|
|
18
19
|
}
|
|
19
|
-
async startNextAndKillCurrent(testDirectory, startArgs, terminalDimensions) {
|
|
20
|
+
async startNextAndKillCurrent(config, testDirectory, startArgs, terminalDimensions) {
|
|
20
21
|
await this[Symbol.asyncDispose]();
|
|
21
22
|
assert(this.state === undefined, "TerminalTestApplication state should be undefined after disposing so that no previous state is reused.");
|
|
22
23
|
const command = startArgs.commandToRun[0];
|
|
@@ -26,7 +27,7 @@ export default class TerminalTestApplication {
|
|
|
26
27
|
const xdgRuntimeDirectory = await XdgRuntimeDirectory.create(testDirectory.rootPathAbsolute);
|
|
27
28
|
const stdout = this.events;
|
|
28
29
|
await this.application.startNextAndKillCurrent(async () => {
|
|
29
|
-
const env = this.getEnvironmentVariables(testDirectory, xdgRuntimeDirectory.path, startArgs.additionalEnvironmentVariables);
|
|
30
|
+
const env = this.getEnvironmentVariables(config, testDirectory, xdgRuntimeDirectory.path, startArgs.additionalEnvironmentVariables);
|
|
30
31
|
return TerminalApplication.start({
|
|
31
32
|
command,
|
|
32
33
|
args: terminalArguments,
|
|
@@ -46,19 +47,27 @@ export default class TerminalTestApplication {
|
|
|
46
47
|
this.state = { testDirectory, xdgRuntimeDirectory };
|
|
47
48
|
log(`🚀 Started Terminal instance ${processId}`);
|
|
48
49
|
}
|
|
49
|
-
getEnvironmentVariables(testDirectory, xdgRuntimeDir, additionalEnvironmentVariables) {
|
|
50
|
+
getEnvironmentVariables(config, testDirectory, xdgRuntimeDir, additionalEnvironmentVariables) {
|
|
50
51
|
const miseStateDirectory = resolveMiseStateDirectory();
|
|
51
|
-
|
|
52
|
+
let env = {
|
|
52
53
|
...process.env,
|
|
53
54
|
HOME: testDirectory.rootPathAbsolute,
|
|
54
55
|
XDG_CONFIG_HOME: join(testDirectory.rootPathAbsolute, ".config"),
|
|
55
56
|
XDG_DATA_HOME: join(testDirectory.testEnvironmentPath, ".repro", "data"),
|
|
56
57
|
XDG_RUNTIME_DIR: xdgRuntimeDir,
|
|
57
58
|
TUI_SANDBOX_TEST_ENVIRONMENT_PATH: testDirectory.testEnvironmentPath,
|
|
58
|
-
...(miseStateDirectory ? { MISE_STATE_DIR: miseStateDirectory } : {}),
|
|
59
|
-
MISE_OFFLINE: "1",
|
|
60
|
-
...additionalEnvironmentVariables,
|
|
61
59
|
};
|
|
60
|
+
if (config.integrations.mise) {
|
|
61
|
+
Object.assign(env, {
|
|
62
|
+
...(miseStateDirectory ? { MISE_STATE_DIR: miseStateDirectory } : {}),
|
|
63
|
+
MISE_OFFLINE: "1",
|
|
64
|
+
});
|
|
65
|
+
// put mise-managed tools' real install dirs on PATH so they are
|
|
66
|
+
// invocable in the isolated env (shims can't re-resolve there)
|
|
67
|
+
env = prependMiseBinPathsToPath(env, resolveMiseBinPaths());
|
|
68
|
+
}
|
|
69
|
+
Object.assign(env, additionalEnvironmentVariables ?? {});
|
|
70
|
+
return env;
|
|
62
71
|
}
|
|
63
72
|
async [Symbol.asyncDispose]() {
|
|
64
73
|
await this.application[Symbol.asyncDispose]();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerminalTestApplication.js","sourceRoot":"","sources":["../../../../../src/server/applications/terminal/TerminalTestApplication.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,YAAY,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"TerminalTestApplication.js","sourceRoot":"","sources":["../../../../../src/server/applications/terminal/TerminalTestApplication.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,4 +11,4 @@ export declare function sendStdin(options: {
|
|
|
11
11
|
tabId: TabId;
|
|
12
12
|
data: string;
|
|
13
13
|
}): Promise<void>;
|
|
14
|
-
export declare function runBlockingShellCommand(signal: AbortSignal | undefined, input: BlockingCommandInput, allowFailure: boolean): Promise<BlockingShellCommandOutput>;
|
|
14
|
+
export declare function runBlockingShellCommand(config: TestServerConfig, signal: AbortSignal | undefined, input: BlockingCommandInput, allowFailure: boolean): Promise<BlockingShellCommandOutput>;
|
|
@@ -12,7 +12,7 @@ export async function start({ tabId, startTerminalArguments }, config) {
|
|
|
12
12
|
const app = terminals.get(tabId.tabId);
|
|
13
13
|
assert(app, `Terminal with tabId ${tabId.tabId} not found.`);
|
|
14
14
|
const testDirectory = await prepareNewTestDirectory(config);
|
|
15
|
-
await app.startNextAndKillCurrent(testDirectory, {
|
|
15
|
+
await app.startNextAndKillCurrent(config, testDirectory, {
|
|
16
16
|
commandToRun: startTerminalArguments.commandToRun,
|
|
17
17
|
additionalEnvironmentVariables: startTerminalArguments.additionalEnvironmentVariables,
|
|
18
18
|
}, startTerminalArguments.terminalDimensions);
|
|
@@ -40,7 +40,7 @@ export async function sendStdin(options) {
|
|
|
40
40
|
assert(app.application, `Terminal application not found for client id ${options.tabId.tabId}. Maybe it's not started yet?`);
|
|
41
41
|
await app.application.write(options.data);
|
|
42
42
|
}
|
|
43
|
-
export async function runBlockingShellCommand(signal, input, allowFailure) {
|
|
43
|
+
export async function runBlockingShellCommand(config, signal, input, allowFailure) {
|
|
44
44
|
const tabId = input.tabId.tabId;
|
|
45
45
|
const app = terminals.get(tabId);
|
|
46
46
|
assert(app !== undefined, `Terminal instance for tabId ${input.tabId.tabId} not found - cannot send stdin. Maybe it's not started yet?`);
|
|
@@ -49,7 +49,7 @@ export async function runBlockingShellCommand(signal, input, allowFailure) {
|
|
|
49
49
|
assert(testDirectory, `Test directory not found for client id ${input.tabId.tabId}. Maybe neovim's not started yet?`);
|
|
50
50
|
const xdgRuntimeDirectory = app.state?.xdgRuntimeDirectory;
|
|
51
51
|
assert(xdgRuntimeDirectory, `XDG runtime directory not found for client id ${input.tabId.tabId}. Maybe it's not started yet?`);
|
|
52
|
-
const env = app.getEnvironmentVariables(testDirectory, xdgRuntimeDirectory.path, input.envOverrides);
|
|
52
|
+
const env = app.getEnvironmentVariables(config, testDirectory, xdgRuntimeDirectory.path, input.envOverrides);
|
|
53
53
|
return executeBlockingShellCommand(testDirectory, input, signal, allowFailure, env);
|
|
54
54
|
}
|
|
55
55
|
//# sourceMappingURL=api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/server/applications/terminal/api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/server/applications/terminal/api.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAK3B,OAAO,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAA;AAClF,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAE9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAA;AAG1E,OAAO,uBAAuB,MAAM,8BAA8B,CAAA;AAElE,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2C,CAAA;AACpE,MAAM,SAAS,GAA+B,IAAI,IAAI,CAAC,GAAG,EAAE;IAC1D,OAAO,IAAI,oBAAoB,EAAE,CAAA;AACnC,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,EAAE,KAAK,EAAE,sBAAsB,EAAsB,EACrD,MAAwB;IAExB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,CAAC,GAAG,EAAE,uBAAuB,KAAK,CAAC,KAAK,aAAa,CAAC,CAAA;IAC5D,MAAM,aAAa,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAA;IAC3D,MAAM,GAAG,CAAC,uBAAuB,CAC/B,MAAM,EACN,aAAa,EACb;QACE,YAAY,EAAE,sBAAsB,CAAC,YAAY;QACjD,8BAA8B,EAAE,sBAAsB,CAAC,8BAA8B;KACtF,EACD,sBAAsB,CAAC,kBAAkB,CAC1C,CAAA;IAED,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAA0B,EAC1B,MAA+B;IAE/B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAA;IAClC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,uBAAuB,EAAE,CAAA;IACjE,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;QACvC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACzB,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,MAAM,GAAG,mCAAmC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAwC,CAAC,CAAA;IACxG,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACrC,KAAK,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAC3C,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAuC;IACrE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAA;IACjC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,wFAAwF,CAAC,CAAA;IACnH,MAAM,CACJ,GAAG,CAAC,WAAW,EACf,gDAAgD,OAAO,CAAC,KAAK,CAAC,KAAK,+BAA+B,CACnG,CAAA;IAED,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAwB,EACxB,MAA+B,EAC/B,KAA2B,EAC3B,YAAqB;IAErB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAA;IAC/B,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,CACJ,GAAG,KAAK,SAAS,EACjB,+BAA+B,KAAK,CAAC,KAAK,CAAC,KAAK,6DAA6D,CAC9G,CAAA;IACD,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,4CAA4C,KAAK,CAAC,KAAK,CAAC,KAAK,+BAA+B,CAAC,CAAA;IAErH,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,EAAE,aAAa,CAAA;IAC9C,MAAM,CAAC,aAAa,EAAE,0CAA0C,KAAK,CAAC,KAAK,CAAC,KAAK,mCAAmC,CAAC,CAAA;IAErH,MAAM,mBAAmB,GAAG,GAAG,CAAC,KAAK,EAAE,mBAAmB,CAAA;IAC1D,MAAM,CACJ,mBAAmB,EACnB,iDAAiD,KAAK,CAAC,KAAK,CAAC,KAAK,+BAA+B,CAClG,CAAA;IAED,MAAM,GAAG,GAAG,GAAG,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAC5G,OAAO,2BAA2B,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;AACrF,CAAC"}
|
|
@@ -32,7 +32,7 @@ export function createTerminalRouter(config) {
|
|
|
32
32
|
return terminal.sendStdin(options.input);
|
|
33
33
|
}),
|
|
34
34
|
runBlockingShellCommand: trpc.procedure.input(blockingCommandInputSchema).mutation(async (options) => {
|
|
35
|
-
return terminal.runBlockingShellCommand(options.signal, options.input, options.input.allowFailure ?? false);
|
|
35
|
+
return terminal.runBlockingShellCommand(config, options.signal, options.input, options.input.allowFailure ?? false);
|
|
36
36
|
}),
|
|
37
37
|
});
|
|
38
38
|
return terminalRouter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminalRouter.js","sourceRoot":"","sources":["../../../../../src/server/applications/terminal/terminalRouter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAA;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAA;AAEpC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,WAAW;IAClB,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC/B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACjC,8BAA8B,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC3E,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SACjB,CAAC;KACH,CAAC;CACH,CAAC,CAAA;AAGF,+DAA+D;AAC/D,0DAA0D;AAC1D,MAAM,UAAU,oBAAoB,CAAC,MAAwB;IAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;YACvF,OAAO,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACjE,CAAC,CAAC;QAEF,KAAK,EAAE,IAAI,CAAC,SAAS;aAClB,KAAK,CAAC,wBAAwB,CAAC;aAC/B,MAAM,CAAC,yBAAyB,CAAC;aACjC,QAAQ,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;YACxB,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC9C,CAAC,CAAC;QAEJ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACrG,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC;QAEF,uBAAuB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;YACjG,OAAO,QAAQ,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"terminalRouter.js","sourceRoot":"","sources":["../../../../../src/server/applications/terminal/terminalRouter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAA;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAA;AAEpC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,WAAW;IAClB,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC/B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACjC,8BAA8B,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC3E,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SACjB,CAAC;KACH,CAAC;CACH,CAAC,CAAA;AAGF,+DAA+D;AAC/D,0DAA0D;AAC1D,MAAM,UAAU,oBAAoB,CAAC,MAAwB;IAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;YACvF,OAAO,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACjE,CAAC,CAAC;QAEF,KAAK,EAAE,IAAI,CAAC,SAAS;aAClB,KAAK,CAAC,wBAAwB,CAAC;aAC/B,MAAM,CAAC,yBAAyB,CAAC;aACjC,QAAQ,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;YACxB,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC9C,CAAC,CAAC;QAEJ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACrG,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC;QAEF,uBAAuB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;YACjG,OAAO,QAAQ,CAAC,uBAAuB,CACrC,MAAM,EACN,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CACpC,CAAA;QACH,CAAC,CAAC;KACH,CAAC,CAAA;IAEF,OAAO,cAAc,CAAA;AACvB,CAAC"}
|
|
@@ -64,6 +64,8 @@ export type TestEnvironmentCommonEnvironmentVariables = {
|
|
|
64
64
|
* @example /Users/mikavilpas/git/tui-sandbox/packages/integration-tests/test-environment
|
|
65
65
|
* */
|
|
66
66
|
TUI_SANDBOX_TEST_ENVIRONMENT_PATH: string;
|
|
67
|
+
};
|
|
68
|
+
export type MiseIntegrationEnvironmentVariables = {
|
|
67
69
|
/** Points mise at the real user's state directory so it reuses their existing
|
|
68
70
|
* trust database instead of prompting to trust config files (which no test can
|
|
69
71
|
* answer). Trusted configs pass silently; untrusted ones still prompt, keeping
|