fix: control exact commits in dirty Windows worktrees
This commit is contained in:
@@ -82,6 +82,22 @@ describe("ssh windows fs read-only operations", () => {
|
||||
expect(commitInvocation.parsed.requiresStdin).toBe(false);
|
||||
});
|
||||
|
||||
test("builds controlled exact-commit and object status helpers", () => {
|
||||
const status = parseSshInvocation("D601:win/F/Work/ConStart", ["git", "exact-commit", "status"]);
|
||||
const plan = parseSshInvocation("D601:win/F/Work/ConStart", ["git", "exact-commit", "plan", "--path", "src/main.c"]);
|
||||
const run = parseSshInvocation("D601:win/F/Work/ConStart", ["git", "exact-commit", "run", "--path", "src/main.c", "--message", "fix: exact", "--confirm"]);
|
||||
const decoded = decodedWindowsPowerShellCommand(run.parsed.remoteCommand);
|
||||
|
||||
expect(status.parsed.invocationKind).toBe("helper");
|
||||
expect(plan.parsed.invocationKind).toBe("helper");
|
||||
expect(decoded).toContain("GIT_INDEX_FILE");
|
||||
expect(decoded).toContain("update-ref");
|
||||
expect(decoded).toContain("unselected worktree/index fingerprint");
|
||||
expect(decoded).toContain("old-value CAS");
|
||||
expect(() => parseSshInvocation("D601:win/F/Work/ConStart", ["git", "exact-commit", "run", "--path", "src/main.c", "--message", "fix: exact"])).toThrow("requires --confirm");
|
||||
expect(() => parseSshInvocation("D601:win/F/Work/ConStart", ["git", "exact-commit", "plan", "--path", "../secret"])).toThrow("must stay inside");
|
||||
});
|
||||
|
||||
test("builds bounded UTF-8 scripts for cat, ls, and rg", () => {
|
||||
const catScript = windowsFsReadOnlyScript("F:\\Work\\demo", "cat", ["--max-bytes", "4096", "中文.md"]);
|
||||
const lsScript = windowsFsReadOnlyScript("F:\\Work\\demo", "ls", ["-la", "--limit=5"]);
|
||||
|
||||
Reference in New Issue
Block a user