fix(daemon): audit runtime best practices
This commit is contained in:
55
src/daemon/service-audit.test.ts
Normal file
55
src/daemon/service-audit.test.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
auditGatewayServiceConfig,
|
||||
SERVICE_AUDIT_CODES,
|
||||
} from "./service-audit.js";
|
||||
|
||||
describe("auditGatewayServiceConfig", () => {
|
||||
it("flags bun runtime", async () => {
|
||||
const audit = await auditGatewayServiceConfig({
|
||||
env: { HOME: "/tmp" },
|
||||
platform: "darwin",
|
||||
command: {
|
||||
programArguments: ["/opt/homebrew/bin/bun", "gateway"],
|
||||
environment: { PATH: "/usr/bin:/bin" },
|
||||
},
|
||||
});
|
||||
expect(
|
||||
audit.issues.some(
|
||||
(issue) => issue.code === SERVICE_AUDIT_CODES.gatewayRuntimeBun,
|
||||
),
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
it("flags version-managed node paths", async () => {
|
||||
const audit = await auditGatewayServiceConfig({
|
||||
env: { HOME: "/tmp" },
|
||||
platform: "darwin",
|
||||
command: {
|
||||
programArguments: [
|
||||
"/Users/test/.nvm/versions/node/v22.0.0/bin/node",
|
||||
"gateway",
|
||||
],
|
||||
environment: {
|
||||
PATH: "/usr/bin:/bin:/Users/test/.nvm/versions/node/v22.0.0/bin",
|
||||
},
|
||||
},
|
||||
});
|
||||
expect(
|
||||
audit.issues.some(
|
||||
(issue) =>
|
||||
issue.code === SERVICE_AUDIT_CODES.gatewayRuntimeNodeVersionManager,
|
||||
),
|
||||
).toBe(true);
|
||||
expect(
|
||||
audit.issues.some(
|
||||
(issue) => issue.code === SERVICE_AUDIT_CODES.gatewayPathNonMinimal,
|
||||
),
|
||||
).toBe(true);
|
||||
expect(
|
||||
audit.issues.some(
|
||||
(issue) => issue.code === SERVICE_AUDIT_CODES.gatewayPathMissingDirs,
|
||||
),
|
||||
).toBe(true);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user