53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
import express from "express";
|
|
import request from "supertest";
|
|
import { describe, expect, it, vi } from "vitest";
|
|
import { companyRoutes } from "../routes/companies.js";
|
|
|
|
vi.mock("../services/index.js", () => ({
|
|
companyService: () => ({
|
|
list: vi.fn(),
|
|
stats: vi.fn(),
|
|
getById: vi.fn(),
|
|
create: vi.fn(),
|
|
update: vi.fn(),
|
|
archive: vi.fn(),
|
|
remove: vi.fn(),
|
|
}),
|
|
companyPortabilityService: () => ({
|
|
exportBundle: vi.fn(),
|
|
previewImport: vi.fn(),
|
|
importBundle: vi.fn(),
|
|
}),
|
|
accessService: () => ({
|
|
canUser: vi.fn(),
|
|
ensureMembership: vi.fn(),
|
|
}),
|
|
budgetService: () => ({
|
|
upsertPolicy: vi.fn(),
|
|
}),
|
|
logActivity: vi.fn(),
|
|
}));
|
|
|
|
describe("company routes malformed issue path guard", () => {
|
|
it("returns a clear error when companyId is missing for issues list path", async () => {
|
|
const app = express();
|
|
app.use((req, _res, next) => {
|
|
(req as any).actor = {
|
|
type: "agent",
|
|
agentId: "agent-1",
|
|
companyId: "company-1",
|
|
source: "agent_key",
|
|
};
|
|
next();
|
|
});
|
|
app.use("/api/companies", companyRoutes({} as any));
|
|
|
|
const res = await request(app).get("/api/companies/issues");
|
|
|
|
expect(res.status).toBe(400);
|
|
expect(res.body).toEqual({
|
|
error: "Missing companyId in path. Use /api/companies/{companyId}/issues.",
|
|
});
|
|
});
|
|
});
|