paperclip/packages/tailscale-https-broker/src/peercred.test.ts

30 lines
954 B
TypeScript

import type { Socket } from "node:net";
import { describe, expect, it } from "vitest";
import { PeerResolutionError, createPeerResolver } from "./peercred.js";
const socket = {} as Socket;
describe("createPeerResolver", () => {
it("returns the actual native identity for admission before authorization", () => {
const resolve = createPeerResolver({
soPeercred: () => ({ uid: 1000, gid: 987, pid: 42 }),
});
expect(resolve(socket)).toEqual({ uid: 1000, gid: 987, pid: 42 });
});
it("fails closed when native credentials are unavailable", () => {
const resolve = createPeerResolver({ soPeercred: () => null });
expect(() => resolve(socket)).toThrow(PeerResolutionError);
});
it("fails closed on malformed native credentials", () => {
const resolve = createPeerResolver({
soPeercred: () => ({ uid: Number.NaN, gid: 987, pid: 42 }),
});
expect(() => resolve(socket)).toThrow(/invalid/);
});
});