30 lines
954 B
TypeScript
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/);
|
|
});
|
|
});
|