fix(test): use /dev/fd instead of /proc/self/fd in fd-path regression test (#37)

/proc does not exist on macOS, and cast runs on the operator's
workstation. /dev/fd resolves on both platforms (on Linux it is a
symlink to /proc/self/fd) and is closer to what bash expands <(...) to.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
claude-hdb 2026-07-16 18:14:20 +00:00
parent 6e8ec34398
commit ec4cf7df27

View file

@ -36,15 +36,16 @@ describe("decryptSecrets", () => {
});
it("accepts a key path only this process can resolve — what <(pm read …) injects", () => {
// Process substitution hands cast a path like /proc/self/fd/11 that is
// Process substitution hands cast a path like /dev/fd/11 that is
// meaningful only inside the process holding the fd. A spawned age does
// not hold it, so passing the path through as `-i <path>` can never work;
// the identity must travel to age on stdin. Opening the key here and
// pointing at our own fd reproduces exactly that shape.
// pointing at our own fd reproduces exactly that shape. /dev/fd works on
// both Linux (symlink to /proc/self/fd) and macOS, where /proc is absent.
const { keyFile, enc } = ageFixture();
const fd = openSync(keyFile, "r");
try {
expect(decryptSecrets(enc, `/proc/self/fd/${fd}`)).toEqual({
expect(decryptSecrets(enc, `/dev/fd/${fd}`)).toEqual({
MAILGUN_KEY: "mk-123",
OPENROUTER_KEY: "or-456",
});