test(lanes): scrub git hook env vars from lane-agents fixture, matching worktree.js's own git() helper
This commit is contained in:
@@ -22,13 +22,29 @@ const { installAgents } = require("../lib/lane-agents");
|
|||||||
|
|
||||||
after(() => fs.rmSync(SUITE_ROOT, { recursive: true, force: true }));
|
after(() => fs.rmSync(SUITE_ROOT, { recursive: true, force: true }));
|
||||||
|
|
||||||
|
// Strip GIT_* vars a parent git hook (e.g. the pre-commit hook running this
|
||||||
|
// very suite) sets in its own environment — those leak to every child
|
||||||
|
// process and override an explicit `cwd`, so without this `git init` here
|
||||||
|
// operates on the outer repo's .git instead of this fixture's throwaway one.
|
||||||
|
// Same scrub `lanes-cli.test.js` and `worktree.js`'s own git() helper use.
|
||||||
|
const GIT_ENV = { ...process.env };
|
||||||
|
delete GIT_ENV.GIT_DIR;
|
||||||
|
delete GIT_ENV.GIT_WORK_TREE;
|
||||||
|
delete GIT_ENV.GIT_INDEX_FILE;
|
||||||
|
delete GIT_ENV.GIT_COMMON_DIR;
|
||||||
|
delete GIT_ENV.GIT_OBJECT_DIRECTORY;
|
||||||
|
delete GIT_ENV.GIT_ALTERNATE_OBJECT_DIRECTORIES;
|
||||||
|
delete GIT_ENV.GIT_PREFIX;
|
||||||
|
delete GIT_ENV.GIT_NAMESPACE;
|
||||||
|
delete GIT_ENV.GIT_CONFIG_PARAMETERS;
|
||||||
|
|
||||||
let laneSeq = 0;
|
let laneSeq = 0;
|
||||||
|
|
||||||
/** Create a real git repo dir (used as a lane's cwd). */
|
/** Create a real git repo dir (used as a lane's cwd). */
|
||||||
function makeRepoDir() {
|
function makeRepoDir() {
|
||||||
const cwd = path.join(SUITE_ROOT, `repo-${++laneSeq}`);
|
const cwd = path.join(SUITE_ROOT, `repo-${++laneSeq}`);
|
||||||
fs.mkdirSync(cwd, { recursive: true });
|
fs.mkdirSync(cwd, { recursive: true });
|
||||||
execFileSync("git", ["init", "--initial-branch=main"], { cwd, stdio: "pipe" });
|
execFileSync("git", ["init", "--initial-branch=main"], { cwd, stdio: "pipe", env: GIT_ENV });
|
||||||
return cwd;
|
return cwd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user