F12: inline editable proposed-change diff in the Markdown editor + Accept/Reject control parity (#64) #66

Merged
benstull merged 12 commits from s58-inline-editor-diff into main 2026-06-26 15:28:15 +00:00
Showing only changes of commit 930b4ab056 - Show all commits
+12 -2
View File
@@ -13,11 +13,20 @@ async function main(): Promise<void> {
const workspace = fs.mkdtempSync(path.join(os.tmpdir(), "cowriting-e2e-")); const workspace = fs.mkdtempSync(path.join(os.tmpdir(), "cowriting-e2e-"));
fs.cpSync(fixture, workspace, { recursive: true }); fs.cpSync(fixture, workspace, { recursive: true });
// VS Code derives its IPC socket path from --user-data-dir. The default
// (`<projectRoot>/.vscode-test/user-data`) plus `/<version>-main.sock` can blow
// past macOS's ~103-char UNIX-socket limit (`listen EINVAL`) when the project
// lives at a long path (e.g. a git worktree). Pin the user-data dir to a SHORT
// root under /tmp so the socket path stays well under the limit. (os.tmpdir() on
// macOS is itself a long /var/folders/… path, so we use /tmp directly.)
const userDataRoot = process.platform === "win32" ? os.tmpdir() : "/tmp";
const userDataDir = fs.mkdtempSync(path.join(userDataRoot, "cwud-"));
try { try {
await runTests({ await runTests({
extensionDevelopmentPath, extensionDevelopmentPath,
extensionTestsPath, extensionTestsPath,
launchArgs: [workspace, "--disable-extensions"], launchArgs: [workspace, "--disable-extensions", "--user-data-dir", userDataDir],
extensionTestsEnv: { E2E_WORKSPACE: workspace }, extensionTestsEnv: { E2E_WORKSPACE: workspace },
}); });
@@ -26,10 +35,11 @@ async function main(): Promise<void> {
await runTests({ await runTests({
extensionDevelopmentPath, extensionDevelopmentPath,
extensionTestsPath: path.resolve(__dirname, "./suite-no-workspace/index"), extensionTestsPath: path.resolve(__dirname, "./suite-no-workspace/index"),
launchArgs: ["--disable-extensions"], launchArgs: ["--disable-extensions", "--user-data-dir", userDataDir],
}); });
} finally { } finally {
fs.rmSync(workspace, { recursive: true, force: true }); fs.rmSync(workspace, { recursive: true, force: true });
fs.rmSync(userDataDir, { recursive: true, force: true });
} }
} }