Open
Description
Expected Behavior
The documentation for within() does not use cd()
due to it touching process.cwd
and not reverting in some way, but having no mention of this side-effect as part of within()
Actual Behavior
The documentation for within() uses cd()
which changes the process.cwd
of the entire script and introduces parity between process.cwd
and $`cd`
Steps to Reproduce
- Run this code for breaking example:
echo("Script start");
echo(`- ${await $`pwd`}`); // => cwd
await within(async () => {
echo("First within");
cd("/");
echo(`- ${await $`pwd`}`); // => /
});
echo("Between within");
echo(`- ${await $`pwd`}`); // => cwd
await within(async () => {
echo("Second within");
echo(`- process CWD: ${process.cwd()}`); // => /
echo(`- ${await $`pwd`}`); // => cwd
});
echo("Script end");
echo(`- ${await $`pwd`}`); // => cwd
Specifications
- zx version: 8.1.4
- Platform: macos
- Runtime: node