@tui-sandbox/library 10.6.0 → 10.7.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/browser/assets/index-BYvynUT_.css +32 -0
- package/dist/browser/assets/index-NiH4zpUV.js +9 -0
- package/dist/browser/index.html +2 -2
- package/dist/src/server/TestServer.js +7 -5
- package/dist/src/server/TestServer.js.map +1 -1
- package/dist/src/server/applications/neovim/NeovimApplication.js +10 -3
- package/dist/src/server/applications/neovim/NeovimApplication.js.map +1 -1
- package/dist/src/server/applications/neovim/NeovimJavascriptApiClient.js +2 -2
- package/dist/src/server/applications/neovim/NeovimJavascriptApiClient.js.map +1 -1
- package/dist/src/server/applications/neovim/api.js +15 -6
- package/dist/src/server/applications/neovim/api.js.map +1 -1
- package/dist/src/server/applications/neovim/environment/createTempDir.js +3 -1
- package/dist/src/server/applications/neovim/environment/createTempDir.js.map +1 -1
- package/dist/src/server/applications/neovim/prepareNewTestDirectory.js +3 -1
- package/dist/src/server/applications/neovim/prepareNewTestDirectory.js.map +1 -1
- package/dist/src/server/applications/terminal/TerminalTestApplication.js +3 -1
- package/dist/src/server/applications/terminal/TerminalTestApplication.js.map +1 -1
- package/dist/src/server/applications/terminal/runBlockingShellCommand.js +3 -2
- package/dist/src/server/applications/terminal/runBlockingShellCommand.js.map +1 -1
- package/dist/src/server/cypress-support/createCypressSupportFile.js +5 -3
- package/dist/src/server/cypress-support/createCypressSupportFile.js.map +1 -1
- package/dist/src/server/dirtree/index.js +3 -1
- package/dist/src/server/dirtree/index.js.map +1 -1
- package/dist/src/server/updateTestdirectorySchemaFile.js +3 -1
- package/dist/src/server/updateTestdirectorySchemaFile.js.map +1 -1
- package/dist/src/server/utilities/DisposableSingleApplication.js +3 -1
- package/dist/src/server/utilities/DisposableSingleApplication.js.map +1 -1
- package/dist/src/server/utilities/TerminalApplication.js +6 -4
- package/dist/src/server/utilities/TerminalApplication.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/server/TestServer.ts +7 -5
- package/src/server/applications/neovim/NeovimApplication.ts +10 -4
- package/src/server/applications/neovim/NeovimJavascriptApiClient.ts +4 -2
- package/src/server/applications/neovim/api.ts +16 -6
- package/src/server/applications/neovim/environment/createTempDir.ts +4 -1
- package/src/server/applications/neovim/prepareNewTestDirectory.ts +4 -1
- package/src/server/applications/terminal/TerminalTestApplication.ts +4 -1
- package/src/server/applications/terminal/runBlockingShellCommand.ts +4 -2
- package/src/server/cypress-support/createCypressSupportFile.ts +6 -3
- package/src/server/dirtree/index.ts +3 -1
- package/src/server/updateTestdirectorySchemaFile.ts +4 -1
- package/src/server/utilities/DisposableSingleApplication.ts +4 -1
- package/src/server/utilities/TerminalApplication.ts +7 -4
- package/dist/browser/assets/index-BWYutne-.js +0 -9
- package/dist/browser/assets/index-D6fBrqAi.css +0 -32
package/dist/browser/index.html
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<title>tui-sandbox integration tests</title>
|
|
6
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
6
|
+
<script type="module" crossorigin src="/assets/index-NiH4zpUV.js"></script>
|
|
7
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BYvynUT_.css">
|
|
8
8
|
</head>
|
|
9
9
|
<body>
|
|
10
10
|
<div id="app"></div>
|
|
@@ -5,15 +5,17 @@ import express from "express";
|
|
|
5
5
|
import { accessSync } from "fs";
|
|
6
6
|
import path from "path";
|
|
7
7
|
import { fileURLToPath } from "url";
|
|
8
|
+
import { debuglog } from "util";
|
|
8
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
10
|
const __dirname = path.dirname(__filename);
|
|
11
|
+
const log = debuglog("tui-sandbox.TestServer");
|
|
10
12
|
export class TestServer {
|
|
11
13
|
settings;
|
|
12
14
|
constructor(settings) {
|
|
13
15
|
this.settings = settings;
|
|
14
16
|
}
|
|
15
17
|
async startAndRun(appRouter) {
|
|
16
|
-
|
|
18
|
+
log("🚀 Server starting");
|
|
17
19
|
const app = express();
|
|
18
20
|
app.use("/trpc", trpcExpress.createExpressMiddleware({
|
|
19
21
|
router: appRouter,
|
|
@@ -30,7 +32,7 @@ export class TestServer {
|
|
|
30
32
|
catch (e) {
|
|
31
33
|
// This is normal when developing the tui-sandbox library locally. It
|
|
32
34
|
// should always exist when using it as an npm package, however.
|
|
33
|
-
console.
|
|
35
|
+
console.warn(`⚠️ Warning: Looks like the tui-sandbox root contents directory is not accessible at: ${publicPath}`);
|
|
34
36
|
}
|
|
35
37
|
// eslint-disable-next-line import-x/no-named-as-default-member
|
|
36
38
|
app.use(express.static(publicPath));
|
|
@@ -40,15 +42,15 @@ export class TestServer {
|
|
|
40
42
|
res.send("pong");
|
|
41
43
|
});
|
|
42
44
|
const server = app.listen(this.settings.port, "0.0.0.0");
|
|
43
|
-
console.
|
|
45
|
+
console.info(`✅ Server listening on port ${this.settings.port}`);
|
|
44
46
|
await Promise.race([once(process, "SIGTERM"), once(process, "SIGINT")]);
|
|
45
|
-
|
|
47
|
+
log("😴 Shutting down...");
|
|
46
48
|
server.close(error => {
|
|
47
49
|
if (error) {
|
|
48
50
|
console.error("Error closing server", error);
|
|
49
51
|
process.exit(1);
|
|
50
52
|
}
|
|
51
|
-
|
|
53
|
+
log("Server closed");
|
|
52
54
|
process.exit(0);
|
|
53
55
|
});
|
|
54
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestServer.js","sourceRoot":"","sources":["../../../src/server/TestServer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,+BAA+B,CAAA;AAC5D,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"TestServer.js","sourceRoot":"","sources":["../../../src/server/TestServer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,+BAA+B,CAAA;AAC5D,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAM/B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC,wBAAwB,CAAC,CAAA;AAE9C,MAAM,OAAO,UAAU;IACe;IAApC,YAAoC,QAA4B;QAA5B,aAAQ,GAAR,QAAQ,CAAoB;IAAG,CAAC;IAE7D,KAAK,CAAC,WAAW,CAAC,SAAwB;QAC/C,GAAG,CAAC,oBAAoB,CAAC,CAAA;QAEzB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;QACrB,GAAG,CAAC,GAAG,CACL,OAAO,EACP,WAAW,CAAC,uBAAuB,CAAC;YAClC,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;YACzB,UAAU,EAAE,IAAI,CAAC;gBACf,MAAM,EAAE,GAAG;aACZ,CAAC;SACH,CAAC,CACH,CAAA;QAED,CAAC;YACC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;YACjE,IAAI,CAAC;gBACH,UAAU,CAAC,UAAU,CAAC,CAAA;YACxB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,qEAAqE;gBACrE,gEAAgE;gBAChE,OAAO,CAAC,IAAI,CACV,wFAAwF,UAAU,EAAE,CACrG,CAAA;YACH,CAAC;YAED,+DAA+D;YAC/D,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;QACrC,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YAC1B,uEAAuE;YACvE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAExD,OAAO,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;QAEhE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;QACvE,GAAG,CAAC,qBAAqB,CAAC,CAAA;QAC1B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACnB,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;gBAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YACD,GAAG,CAAC,eAAe,CAAC,CAAA;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -4,9 +4,11 @@ import EventEmitter from "events";
|
|
|
4
4
|
import { access } from "fs/promises";
|
|
5
5
|
import { tmpdir } from "os";
|
|
6
6
|
import path, { join } from "path";
|
|
7
|
+
import { debuglog } from "util";
|
|
7
8
|
import { DisposableSingleApplication } from "../../utilities/DisposableSingleApplication.js";
|
|
8
9
|
import { TerminalApplication } from "../../utilities/TerminalApplication.js";
|
|
9
10
|
import { connectNeovimApi } from "./NeovimJavascriptApiClient.js";
|
|
11
|
+
const log = debuglog("tui-sandbox-neovim-application");
|
|
10
12
|
export class NeovimApplication {
|
|
11
13
|
testEnvironmentPath;
|
|
12
14
|
application;
|
|
@@ -80,7 +82,7 @@ export class NeovimApplication {
|
|
|
80
82
|
socketPath,
|
|
81
83
|
client: connectNeovimApi(socketPath),
|
|
82
84
|
};
|
|
83
|
-
|
|
85
|
+
log(`🚀 Started Neovim instance ${processId}`);
|
|
84
86
|
}
|
|
85
87
|
getEnvironmentVariables(testDirectory, additionalEnvironmentVariables) {
|
|
86
88
|
return {
|
|
@@ -103,12 +105,17 @@ export class NeovimApplication {
|
|
|
103
105
|
exec(`rm -rf ${this.state.testDirectory.rootPathAbsolute}`);
|
|
104
106
|
try {
|
|
105
107
|
await access(this.state.socketPath);
|
|
106
|
-
|
|
108
|
+
// this is probably not dangerous, but I'm not sure why it sometimes
|
|
109
|
+
// happens. It's better to report it than to hide it.
|
|
110
|
+
log(`Socket file ${this.state.socketPath} should have been removed by neovim when it exited.`);
|
|
111
|
+
return;
|
|
107
112
|
}
|
|
108
113
|
catch (e) {
|
|
109
114
|
// all good
|
|
110
115
|
}
|
|
111
|
-
|
|
116
|
+
finally {
|
|
117
|
+
this.state = undefined;
|
|
118
|
+
}
|
|
112
119
|
}
|
|
113
120
|
}
|
|
114
121
|
//# sourceMappingURL=NeovimApplication.js.map
|
|
@@ -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;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAC3B,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"NeovimApplication.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/NeovimApplication.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,11 +21,11 @@ export function connectNeovimApi(socketPath) {
|
|
|
21
21
|
for (let i = 0; i < 100; i++) {
|
|
22
22
|
try {
|
|
23
23
|
await access(socketPath);
|
|
24
|
-
//
|
|
24
|
+
// log(`socket file ${socketPath} created after at attempt ${i + 1}`)
|
|
25
25
|
break;
|
|
26
26
|
}
|
|
27
27
|
catch (e) {
|
|
28
|
-
//
|
|
28
|
+
// log(`polling for socket file ${socketPath} to be created (attempt ${i + 1})`)
|
|
29
29
|
await new Promise(resolve => setTimeout(resolve, 100));
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeovimJavascriptApiClient.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/NeovimJavascriptApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"NeovimJavascriptApiClient.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/NeovimJavascriptApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAQ9C,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,4EAA4E;IAC5E,WAAW;IACX,EAAE;IACF,wGAAwG;IACxG,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,KAAK,EAAE,MAAM;QACb,UAAU,EAAE;YACV,IAAI,UAAU,CAAC,OAAO,CAAC;gBACrB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;aAC3D,CAAC;SACH;KACF,CAAC,CAAA;IAEF,0EAA0E;IAC1E,mDAAmD;IACnD,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAA;gBACxB,qEAAqE;gBACrE,MAAK;YACP,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,gFAAgF;gBAChF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAA6B,CAAC,CAAC,CAAA;YAClF,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,QAAQ;QACR,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,GAAG,CAAA;QAElC,OAAO,MAAM,CAAC;YACZ,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE;gBACP,MAAM;aACP;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -54,6 +54,7 @@ import assert from "assert";
|
|
|
54
54
|
import "core-js/proposals/async-explicit-resource-management.js";
|
|
55
55
|
import { access } from "fs/promises";
|
|
56
56
|
import path from "path";
|
|
57
|
+
import { debuglog } from "util";
|
|
57
58
|
import { convertEventEmitterToAsyncGenerator } from "../../utilities/generator.js";
|
|
58
59
|
import { Lazy } from "../../utilities/Lazy.js";
|
|
59
60
|
import { timeout } from "../../utilities/timeout.js";
|
|
@@ -64,6 +65,7 @@ const neovims = new Map();
|
|
|
64
65
|
const resources = new Lazy(() => {
|
|
65
66
|
return new AsyncDisposableStack();
|
|
66
67
|
});
|
|
68
|
+
const log = debuglog("tui-sandbox.neovim.api");
|
|
67
69
|
export async function installDependencies(testEnvironmentPath, config) {
|
|
68
70
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
69
71
|
try {
|
|
@@ -74,9 +76,14 @@ export async function installDependencies(testEnvironmentPath, config) {
|
|
|
74
76
|
await access(prepareFilePath);
|
|
75
77
|
}
|
|
76
78
|
catch (e) {
|
|
79
|
+
// show the output here because it's typically shown in the console before
|
|
80
|
+
// the tests start. It's also sensitive to outside changes.
|
|
81
|
+
//
|
|
82
|
+
// eslint-disable-next-line no-restricted-properties
|
|
77
83
|
console.log(`Neovim prepareFilePath does not exist: ${prepareFilePath}. If you want to run a prepare script before starting the tests, create it.`);
|
|
78
84
|
return;
|
|
79
85
|
}
|
|
86
|
+
// eslint-disable-next-line no-restricted-properties
|
|
80
87
|
console.log(`🚀 Running Neovim prepareFilePath ${prepareFilePath}...`);
|
|
81
88
|
let output = "";
|
|
82
89
|
app.events.on("stdout", data => {
|
|
@@ -86,7 +93,9 @@ export async function installDependencies(testEnvironmentPath, config) {
|
|
|
86
93
|
});
|
|
87
94
|
await app.startNextAndKillCurrent(testDirectory, { filename: "empty.txt", headlessCmd: `lua dofile("${prepareFilePath}")` }, { cols: 80, rows: 24 });
|
|
88
95
|
await app.application.untilExit();
|
|
96
|
+
// eslint-disable-next-line no-restricted-properties
|
|
89
97
|
console.log(`🚀 Neovim installDependencies output:`);
|
|
98
|
+
// eslint-disable-next-line no-restricted-properties
|
|
90
99
|
console.log(output);
|
|
91
100
|
}
|
|
92
101
|
catch (e_1) {
|
|
@@ -147,7 +156,7 @@ export async function runLuaCode(options) {
|
|
|
147
156
|
if (!api) {
|
|
148
157
|
throw new Error(`Neovim API not available for client id ${options.tabId.tabId}. Maybe it's not started yet?`);
|
|
149
158
|
}
|
|
150
|
-
|
|
159
|
+
log(`Neovim ${neovim.application.processId()} running Lua code: ${options.luaCode}`);
|
|
151
160
|
try {
|
|
152
161
|
const value = await api.lua(options.luaCode);
|
|
153
162
|
return { value };
|
|
@@ -165,10 +174,10 @@ export async function waitForLuaCode(options, signal) {
|
|
|
165
174
|
if (!api) {
|
|
166
175
|
throw new Error(`Neovim API not available for client id ${options.tabId.tabId}. Maybe it's not started yet?`);
|
|
167
176
|
}
|
|
168
|
-
|
|
177
|
+
log(`Neovim ${neovim.application.processId()} polling Lua code: ${options.luaAssertion}`);
|
|
169
178
|
let running = true;
|
|
170
179
|
signal?.addEventListener("abort", () => {
|
|
171
|
-
|
|
180
|
+
log(`Polling Lua code: '${options.luaAssertion}' was aborted via signal`);
|
|
172
181
|
running = false;
|
|
173
182
|
});
|
|
174
183
|
const failureMessages = [];
|
|
@@ -184,7 +193,7 @@ export async function waitForLuaCode(options, signal) {
|
|
|
184
193
|
}
|
|
185
194
|
try {
|
|
186
195
|
const value = await api.lua(options.luaAssertion);
|
|
187
|
-
console.
|
|
196
|
+
console.info(`Lua code assertion passed: ${options.luaAssertion} (iteration ${iteration})`);
|
|
188
197
|
return { value };
|
|
189
198
|
}
|
|
190
199
|
catch (e) {
|
|
@@ -203,11 +212,11 @@ export async function runExCommand(options) {
|
|
|
203
212
|
if (!api) {
|
|
204
213
|
throw new Error(`Neovim API not available for client id ${options.tabId.tabId}. Maybe it's not started yet?`);
|
|
205
214
|
}
|
|
206
|
-
|
|
215
|
+
log(`Neovim ${neovim.application.processId()} running Ex command: ${options.command}`);
|
|
207
216
|
try {
|
|
208
217
|
const output = await api.commandOutput(options.command);
|
|
209
218
|
if (options.log) {
|
|
210
|
-
console.
|
|
219
|
+
console.info(`:${options.command} output: ${output}`);
|
|
211
220
|
}
|
|
212
221
|
return { value: output };
|
|
213
222
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,yDAAyD,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,IAAI,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,10 @@ import { Type } from "dree";
|
|
|
4
4
|
import { constants, readdirSync, statSync } from "fs";
|
|
5
5
|
import { access, mkdir, mkdtemp } from "fs/promises";
|
|
6
6
|
import path from "path";
|
|
7
|
+
import { debuglog } from "util";
|
|
7
8
|
import { convertDree, getDirectoryTree } from "../../../dirtree/index.js";
|
|
8
9
|
import { updateTestdirectorySchemaFile } from "../../../updateTestdirectorySchemaFile.js";
|
|
10
|
+
const log = debuglog("tui-sandbox.createTempDir");
|
|
9
11
|
export async function createTempDir(config) {
|
|
10
12
|
try {
|
|
11
13
|
// before calling this function, the testEnvironmentPath should already exist
|
|
@@ -18,7 +20,7 @@ export async function createTempDir(config) {
|
|
|
18
20
|
return;
|
|
19
21
|
execSync(`cp -R '${path.join(config.testEnvironmentPath, entry)}' ${dir}/`);
|
|
20
22
|
});
|
|
21
|
-
|
|
23
|
+
log(`Created test directory at ${dir}`);
|
|
22
24
|
const tree = convertDree(getDirectoryTree(dir).dree);
|
|
23
25
|
assert(tree.type === Type.DIRECTORY);
|
|
24
26
|
await updateTestdirectorySchemaFile(config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTempDir.js","sourceRoot":"","sources":["../../../../../../src/server/applications/neovim/environment/createTempDir.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAGzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAA;AAEzF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAyB;IAC3D,IAAI,CAAC;QACH,6EAA6E;QAC7E,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;QACpC,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;QAEnE,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtD,IAAI,KAAK,KAAM,UAAkC;gBAAE,OAAM;YACzD,IAAI,KAAK,KAAK,QAAQ;gBAAE,OAAM;YAE9B,QAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;QAC7E,CAAC,CAAC,CAAA;QACF,
|
|
1
|
+
{"version":3,"file":"createTempDir.js","sourceRoot":"","sources":["../../../../../../src/server/applications/neovim/environment/createTempDir.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { access, mkdir } from "fs/promises";
|
|
2
|
+
import { debuglog } from "util";
|
|
2
3
|
import { createTempDir, removeTestDirectories } from "./environment/createTempDir.js";
|
|
4
|
+
const log = debuglog("tui-sandbox.neovim.prepareNewTestDirectory");
|
|
3
5
|
export async function prepareNewTestDirectory(config) {
|
|
4
6
|
try {
|
|
5
7
|
// if the directory does not exist, create it
|
|
6
8
|
await access(config.testEnvironmentPath);
|
|
7
9
|
}
|
|
8
10
|
catch {
|
|
9
|
-
|
|
11
|
+
log(`Creating testEnvironmentPath directory at ${config.testEnvironmentPath}`);
|
|
10
12
|
await mkdir(config.testEnvironmentPath, { recursive: true });
|
|
11
13
|
}
|
|
12
14
|
await removeTestDirectories(config.testEnvironmentPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareNewTestDirectory.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/prepareNewTestDirectory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"prepareNewTestDirectory.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/prepareNewTestDirectory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAG/B,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAErF,MAAM,GAAG,GAAG,QAAQ,CAAC,4CAA4C,CAAC,CAAA;AAElE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,MAAyB;IACrE,IAAI,CAAC;QACH,6CAA6C;QAC7C,MAAM,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,6CAA6C,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAA;QAC9E,MAAM,KAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,qBAAqB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;IACvD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAA;IACjD,OAAO,aAAa,CAAA;AACtB,CAAC"}
|
|
@@ -2,8 +2,10 @@ import assert from "assert";
|
|
|
2
2
|
import { exec } from "child_process";
|
|
3
3
|
import EventEmitter from "events";
|
|
4
4
|
import { join } from "path";
|
|
5
|
+
import { debuglog } from "util";
|
|
5
6
|
import { DisposableSingleApplication } from "../../utilities/DisposableSingleApplication.js";
|
|
6
7
|
import { TerminalApplication } from "../../utilities/TerminalApplication.js";
|
|
8
|
+
const log = debuglog("tui-sandbox.terminal.TerminalTestApplication");
|
|
7
9
|
export default class TerminalTestApplication {
|
|
8
10
|
testEnvironmentPath;
|
|
9
11
|
application;
|
|
@@ -39,7 +41,7 @@ export default class TerminalTestApplication {
|
|
|
39
41
|
const processId = this.application.processId();
|
|
40
42
|
assert(processId !== undefined, "TerminalApplication was started without a process ID. This is a bug - please open an issue.");
|
|
41
43
|
this.state = { testDirectory };
|
|
42
|
-
|
|
44
|
+
log(`🚀 Started Terminal instance ${processId}`);
|
|
43
45
|
}
|
|
44
46
|
getEnvironmentVariables(testDirectory, additionalEnvironmentVariables) {
|
|
45
47
|
return {
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"TerminalTestApplication.js","sourceRoot":"","sources":["../../../../../src/server/applications/terminal/TerminalTestApplication.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { exec } from "child_process";
|
|
2
2
|
import "core-js/proposals/async-explicit-resource-management.js";
|
|
3
3
|
import { join } from "path";
|
|
4
|
-
import util from "util";
|
|
4
|
+
import util, { debuglog } from "util";
|
|
5
|
+
const log = debuglog("tui-sandbox.terminal.runBlockingShellCommand");
|
|
5
6
|
export async function executeBlockingShellCommand(testDirectory, input, signal, allowFailure, env) {
|
|
6
7
|
const execPromise = util.promisify(exec);
|
|
7
8
|
const cwd = getCwd({
|
|
@@ -19,7 +20,7 @@ export async function executeBlockingShellCommand(testDirectory, input, signal,
|
|
|
19
20
|
cwd,
|
|
20
21
|
env,
|
|
21
22
|
});
|
|
22
|
-
|
|
23
|
+
log(`Successfully ran shell blockingCommand (${input.command}) in cwd: '${cwd}' with stdout: ${result.stdout}, stderr: ${result.stderr}`);
|
|
23
24
|
return {
|
|
24
25
|
type: "success",
|
|
25
26
|
stdout: result.stdout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runBlockingShellCommand.js","sourceRoot":"","sources":["../../../../../src/server/applications/terminal/runBlockingShellCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,yDAAyD,CAAA;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"runBlockingShellCommand.js","sourceRoot":"","sources":["../../../../../src/server/applications/terminal/runBlockingShellCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,yDAAyD,CAAA;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAIrC,MAAM,GAAG,GAAG,QAAQ,CAAC,8CAA8C,CAAC,CAAA;AAEpE,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,aAA4B,EAC5B,KAA2B,EAC3B,MAA+B,EAC/B,YAAqB,EACrB,GAAsB;IAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAExC,MAAM,GAAG,GAAG,MAAM,CAAC;QACjB,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;QAChD,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,WAAW,EAAE,KAAK,CAAC,GAAG;QACtB,IAAI,EAAE,aAAa,CAAC,gBAAgB;KACrC,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG;YACH,GAAG;SACJ,CAAC,CAAA;QACF,GAAG,CACD,2CAA2C,KAAK,CAAC,OAAO,cAAc,GAAG,kBAAkB,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,CACrI,CAAA;QACD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;SACe,CAAA;IACxC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,wCAAwC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAA;QACzE,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO;gBACL,IAAI,EAAE,QAAQ;aACf,CAAA;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;IACzF,CAAC;AACH,CAAC;AAQD,MAAM,UAAU,MAAM,CAAC,IAAqB;IAC1C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAA;AACtC,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync } from "fs";
|
|
2
2
|
import { mkdir, stat } from "fs/promises";
|
|
3
3
|
import path from "path";
|
|
4
|
+
import { debuglog } from "util";
|
|
4
5
|
import { createCypressSupportFileContents } from "./contents.js";
|
|
6
|
+
const log = debuglog("tui-sandbox.dirtree");
|
|
5
7
|
/**
|
|
6
8
|
* This is the interface of tui-sandbox as far as cypress in the user's
|
|
7
9
|
* application is concerned. It needs to be checked for changes once per
|
|
@@ -14,7 +16,7 @@ export async function createCypressSupportFile({ cypressSupportDirectoryPath, su
|
|
|
14
16
|
await stat(configModificationsDirectoryPath);
|
|
15
17
|
}
|
|
16
18
|
catch (error) {
|
|
17
|
-
console.
|
|
19
|
+
console.info(`Creating config-modifications directory at ${configModificationsDirectoryPath}. You can put Neovim startup scripts into this directory, and load them when starting your Neovim test.`);
|
|
18
20
|
await mkdir(configModificationsDirectoryPath, { recursive: true });
|
|
19
21
|
}
|
|
20
22
|
const text = await createCypressSupportFileContents();
|
|
@@ -24,13 +26,13 @@ export async function createCypressSupportFile({ cypressSupportDirectoryPath, su
|
|
|
24
26
|
oldSchema = readFileSync(outputFilePath, "utf-8");
|
|
25
27
|
}
|
|
26
28
|
catch (error) {
|
|
27
|
-
console.
|
|
29
|
+
console.warn(`No existing cypress support file found at ${outputFilePath}`);
|
|
28
30
|
}
|
|
29
31
|
if (oldSchema !== text) {
|
|
30
32
|
// it's important to not write the file if the schema hasn't changed
|
|
31
33
|
// because file watchers will trigger on file changes and we don't want to
|
|
32
34
|
// trigger a build if the schema hasn't changed
|
|
33
|
-
|
|
35
|
+
log(`🪛 Writing cypress support file to ${outputFilePath}`);
|
|
34
36
|
writeFileSync(outputFilePath, text);
|
|
35
37
|
return "updated";
|
|
36
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCypressSupportFile.js","sourceRoot":"","sources":["../../../../src/server/cypress-support/createCypressSupportFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"createCypressSupportFile.js","sourceRoot":"","sources":["../../../../src/server/cypress-support/createCypressSupportFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAA;AAEhE,MAAM,GAAG,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAA;AAS3C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAC7C,2BAA2B,EAC3B,eAAe,GACc;IAC7B,4DAA4D;IAC5D,MAAM,gCAAgC,GAAG,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,sBAAsB,CAAC,CAAA;IACvG,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,gCAAgC,CAAC,CAAA;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,8CAA8C,gCAAgC,yGAAyG,CACxL,CAAA;QACD,MAAM,KAAK,CAAC,gCAAgC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACpE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,gCAAgC,EAAE,CAAA;IAErD,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,eAAe,CAAC,CAAA;IAC9E,IAAI,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,6CAA6C,cAAc,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,oEAAoE;QACpE,0EAA0E;QAC1E,+CAA+C;QAC/C,GAAG,CAAC,sCAAsC,cAAc,EAAE,CAAC,CAAA;QAC3D,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;QACnC,OAAO,SAAS,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,aAAa,CAAA;IACtB,CAAC;AACH,CAAC"}
|
|
@@ -2,7 +2,9 @@ import { scan, Type } from "dree";
|
|
|
2
2
|
import { readlinkSync } from "fs";
|
|
3
3
|
import { format, resolveConfig } from "prettier";
|
|
4
4
|
import { fileURLToPath } from "url";
|
|
5
|
+
import { debuglog } from "util";
|
|
5
6
|
import { jsonToZod } from "./json-to-zod.js";
|
|
7
|
+
const log = debuglog("tui-sandbox.dirtree");
|
|
6
8
|
/** Convert a directory tree to a TypeScript type. This is useful for testing
|
|
7
9
|
* as the initial state of the test directory is fully known in tests. */
|
|
8
10
|
export function getDirectoryTree(path) {
|
|
@@ -78,7 +80,7 @@ export async function buildSchemaForDirectoryTree(result, name) {
|
|
|
78
80
|
}
|
|
79
81
|
const __filename = fileURLToPath(import.meta.url);
|
|
80
82
|
export async function buildTestDirectorySchema(testDirectoryPath) {
|
|
81
|
-
|
|
83
|
+
log("Building schema for test directory", testDirectoryPath);
|
|
82
84
|
const dree = getDirectoryTree(testDirectoryPath);
|
|
83
85
|
let text = await buildSchemaForDirectoryTree(dree, "MyTestDirectory");
|
|
84
86
|
const options = await resolveConfig(__filename);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/dirtree/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/dirtree/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync } from "fs";
|
|
2
|
+
import { debuglog } from "util";
|
|
2
3
|
import { buildTestDirectorySchema } from "./dirtree/index.js";
|
|
4
|
+
const log = debuglog("tui-sandbox.updateTestdirectorySchemaFile");
|
|
3
5
|
export async function updateTestdirectorySchemaFile({ testEnvironmentPath, outputFilePath, }) {
|
|
4
6
|
const newSchema = await buildTestDirectorySchema(testEnvironmentPath);
|
|
5
7
|
let oldSchema = "";
|
|
@@ -7,7 +9,7 @@ export async function updateTestdirectorySchemaFile({ testEnvironmentPath, outpu
|
|
|
7
9
|
oldSchema = readFileSync(outputFilePath, "utf-8");
|
|
8
10
|
}
|
|
9
11
|
catch (error) {
|
|
10
|
-
|
|
12
|
+
log("No existing schema file found, creating a new one");
|
|
11
13
|
}
|
|
12
14
|
if (oldSchema !== newSchema) {
|
|
13
15
|
// it's important to not write the file if the schema hasn't changed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateTestdirectorySchemaFile.js","sourceRoot":"","sources":["../../../src/server/updateTestdirectorySchemaFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"updateTestdirectorySchemaFile.js","sourceRoot":"","sources":["../../../src/server/updateTestdirectorySchemaFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,MAAM,GAAG,GAAG,QAAQ,CAAC,2CAA2C,CAAC,CAAA;AAcjE,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,EAClD,mBAAmB,EACnB,cAAc,GACI;IAClB,MAAM,SAAS,GAAW,MAAM,wBAAwB,CAAC,mBAAmB,CAAC,CAAA;IAC7E,IAAI,SAAS,GAAG,EAAE,CAAA;IAElB,IAAI,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,mDAAmD,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,oEAAoE;QACpE,0EAA0E;QAC1E,+CAA+C;QAC/C,aAAa,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QACxC,OAAO,SAAS,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,aAAa,CAAA;IACtB,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import assert from "assert";
|
|
2
|
+
import { debuglog } from "util";
|
|
3
|
+
const log = debuglog("tui-sandbox.DisposableSingleApplication");
|
|
2
4
|
/** A testable application that can be started, killed, and given input. For a
|
|
3
5
|
* single instance of this interface, only a single instance can be running at
|
|
4
6
|
* a time.
|
|
@@ -25,7 +27,7 @@ export class DisposableSingleApplication {
|
|
|
25
27
|
if (this.processId() === undefined) {
|
|
26
28
|
return;
|
|
27
29
|
}
|
|
28
|
-
|
|
30
|
+
log(`Killing current application ${this.processId()}...`);
|
|
29
31
|
await this.application?.killAndWait();
|
|
30
32
|
}
|
|
31
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisposableSingleApplication.js","sourceRoot":"","sources":["../../../../src/server/utilities/DisposableSingleApplication.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"DisposableSingleApplication.js","sourceRoot":"","sources":["../../../../src/server/utilities/DisposableSingleApplication.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAK/B,MAAM,GAAG,GAAG,QAAQ,CAAC,yCAAyC,CAAC,CAAA;AAE/D;;;GAGG;AACH,MAAM,OAAO,2BAA2B;IAC5B,WAAW,CAAkC;IAEhD,KAAK,CAAC,uBAAuB,CAAC,SAA8C;QACjF,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG,MAAM,SAAS,EAAE,CAAA;IACtC,CAAC;IAEM,KAAK,CAAC,SAAS;QACpB,MAAM,CACJ,IAAI,CAAC,WAAW,EAChB,sGAAsG,CACvG,CAAA;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAA;IACnC,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,KAAa;QAC9B,MAAM,CACJ,IAAI,CAAC,WAAW,EAChB,8FAA8F,CAC/F,CAAA;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,CAAA;IACpC,CAAC;IAED,iDAAiD;IAC1C,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QAChC,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,SAAS,EAAE,CAAC;YACnC,OAAM;QACR,CAAC;QACD,GAAG,CAAC,+BAA+B,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACzD,MAAM,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAA;IACvC,CAAC;CACF"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { createLogger, format, transports } from "winston";
|
|
2
2
|
import pty from "node-pty";
|
|
3
|
+
import { debuglog } from "util";
|
|
4
|
+
const log = debuglog("tui-sandbox.TerminalApplication");
|
|
3
5
|
// NOTE separating stdout and stderr is not supported by node-pty
|
|
4
6
|
// https://github.com/microsoft/node-pty/issues/71
|
|
5
7
|
export class TerminalApplication {
|
|
@@ -30,7 +32,7 @@ export class TerminalApplication {
|
|
|
30
32
|
}
|
|
31
33
|
/** @constructor Start a new terminal application. */
|
|
32
34
|
static start({ onStdoutOrStderr, command, args, cwd, env, dimensions, }) {
|
|
33
|
-
|
|
35
|
+
log(`Starting '${command}' with args '${args.join(" ")}' in cwd '${cwd}'`);
|
|
34
36
|
const ptyProcess = pty.spawn(command, args, {
|
|
35
37
|
name: "xterm-color",
|
|
36
38
|
cwd,
|
|
@@ -40,7 +42,7 @@ export class TerminalApplication {
|
|
|
40
42
|
});
|
|
41
43
|
ptyProcess.onData(onStdoutOrStderr);
|
|
42
44
|
ptyProcess.onExit(({ exitCode, signal }) => {
|
|
43
|
-
|
|
45
|
+
log(`Child process exited with code ${exitCode} and signal ${signal}`);
|
|
44
46
|
});
|
|
45
47
|
const processId = ptyProcess.pid;
|
|
46
48
|
if (!processId) {
|
|
@@ -59,9 +61,9 @@ export class TerminalApplication {
|
|
|
59
61
|
this.subProcess.write(data);
|
|
60
62
|
}
|
|
61
63
|
async killAndWait() {
|
|
62
|
-
|
|
64
|
+
log(`💣 Killing process ${this.processId}`);
|
|
63
65
|
this.subProcess.kill();
|
|
64
|
-
|
|
66
|
+
log(`💥 Killed process ${this.processId}`);
|
|
65
67
|
}
|
|
66
68
|
}
|
|
67
69
|
//# sourceMappingURL=TerminalApplication.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerminalApplication.js","sourceRoot":"","sources":["../../../../src/server/utilities/TerminalApplication.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAI1D,OAAO,GAAG,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"TerminalApplication.js","sourceRoot":"","sources":["../../../../src/server/utilities/TerminalApplication.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAI1D,OAAO,GAAG,MAAM,UAAU,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAG/B,MAAM,GAAG,GAAG,QAAQ,CAAC,iCAAiC,CAAC,CAAA;AAIvD,iEAAiE;AACjE,kDAAkD;AAClD,MAAM,OAAO,mBAAmB;IAMX;IACD;IACA;IACA;IARF,SAAS,CAAQ;IAEjB,MAAM,CAAgB;IAEtC,YACmB,UAAgB,EACjB,gBAAwC,EACxC,SAA4B,EAC5B,IAAY;QAHX,eAAU,GAAV,UAAU,CAAM;QACjB,qBAAgB,GAAhB,gBAAgB,CAAwB;QACxC,cAAS,GAAT,SAAS,CAAmB;QAC5B,SAAI,GAAJ,IAAI,CAAQ;QAE5B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,CAAA;QAE/B,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;YACzB,UAAU,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACtC,WAAW,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE;YACpC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;SACxD,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAE5B,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;YACzC,MAAmC,CAAA;YACnC,MAAM,GAAG,GAAG,iBAAiB,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,sBAAsB,MAAM,CAAC,QAAQ,CAAC,eAAe,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;YAC9H,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;YAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,qDAAqD;IAC9C,MAAM,CAAC,KAAK,CAAC,EAClB,gBAAgB,EAChB,OAAO,EACP,IAAI,EACJ,GAAG,EACH,GAAG,EACH,UAAU,GAQX;QACC,GAAG,CAAC,aAAa,OAAO,gBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,CAAA;QAE1E,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YAC1C,IAAI,EAAE,aAAa;YACnB,GAAG;YACH,GAAG;YACH,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,IAAI,EAAE,UAAU,CAAC,IAAI;SACtB,CAAC,CAAA;QACF,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACnC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;YACzC,GAAG,CAAC,kCAAkC,QAAQ,eAAe,MAAM,EAAE,CAAC,CAAA;QACxE,CAAC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAA;QAEhC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClD,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,OAAO,CAAW,OAAO,CAAC,EAAE;YAChD,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;gBACzC,8FAA8F;gBAC9F,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;YAC/B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,CAAC,OAAwB,CAAC,CAAA;IAC9G,CAAC;IAED,qCAAqC;IAC9B,KAAK,CAAC,IAAY;QACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,GAAG,CAAC,sBAAsB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;QACtB,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5C,CAAC;CACF"}
|