feat: add opportunity workflows, delete routes, company sites, algorithms, and expanded test coverage

This commit is contained in:
2026-03-09 02:56:08 -05:00
parent c0a4d4f919
commit f53b390e18
50 changed files with 8837 additions and 63 deletions
+181
View File
@@ -0,0 +1,181 @@
import { describe, test, expect, mock, beforeEach } from "bun:test";
import { buildMockRole, buildMockUser, buildMockConstants } from "../setup";
// ---------------------------------------------------------------------------
// Stable mock factory
// ---------------------------------------------------------------------------
function createStablePrismaMock(
overrides: Record<string, Record<string, any>> = {},
) {
return new Proxy(
{},
{
get(_target, model: string) {
if (model === "$connect" || model === "$disconnect")
return mock(() => Promise.resolve());
if (overrides[model]) return overrides[model];
return new Proxy({}, { get: () => mock(() => Promise.resolve(null)) });
},
},
);
}
// ---------------------------------------------------------------------------
// Tests
// ---------------------------------------------------------------------------
describe("roles manager", () => {
beforeEach(() => {
mock.restore();
});
// -------------------------------------------------------------------
// fetch
// -------------------------------------------------------------------
describe("fetch()", () => {
test("returns RoleController when found by id", async () => {
const mockData = { ...buildMockRole(), users: [] };
mock.module("../../src/constants", () =>
buildMockConstants({
prisma: createStablePrismaMock({
role: {
findFirst: mock(() => Promise.resolve(mockData)),
},
}),
permissionsPrivateKey: "test-key",
}),
);
const { roles } = await import("../../src/managers/roles");
const result = await roles.fetch("role-1");
expect(result).toBeDefined();
expect(result.id).toBe("role-1");
});
test("throws UnknownRole when not found", async () => {
mock.module("../../src/constants", () =>
buildMockConstants({
prisma: createStablePrismaMock({
role: {
findFirst: mock(() => Promise.resolve(null)),
},
}),
permissionsPrivateKey: "test-key",
}),
);
const { roles } = await import("../../src/managers/roles");
try {
await roles.fetch("nonexistent");
expect(true).toBe(false);
} catch (e: any) {
expect(e.name).toBe("UnknownRole");
expect(e.status).toBe(404);
}
});
});
// -------------------------------------------------------------------
// fetchAllRoles
// -------------------------------------------------------------------
describe("fetchAllRoles()", () => {
test("returns a Collection of role controllers", async () => {
const roles1 = [
{ ...buildMockRole(), users: [] },
{ ...buildMockRole({ id: "role-2", moniker: "admin" }), users: [] },
];
mock.module("../../src/constants", () =>
buildMockConstants({
prisma: createStablePrismaMock({
role: {
findMany: mock(() => Promise.resolve(roles1)),
findFirst: mock(() => Promise.resolve(null)),
},
}),
permissionsPrivateKey: "test-key",
}),
);
const { roles } = await import("../../src/managers/roles");
const collection = await roles.fetchAllRoles();
expect(collection.size).toBe(2);
});
});
// -------------------------------------------------------------------
// create
// -------------------------------------------------------------------
describe("create()", () => {
test("throws when moniker is already taken", async () => {
mock.module("../../src/constants", () =>
buildMockConstants({
prisma: createStablePrismaMock({
role: {
findFirst: mock(() => Promise.resolve(buildMockRole())),
},
}),
permissionsPrivateKey: "test-key",
}),
);
const { roles } = await import("../../src/managers/roles");
try {
await roles.create({
title: "Test Role",
moniker: "test-role",
});
expect(true).toBe(false);
} catch (e: any) {
expect(e.message).toContain("Moniker is already taken");
}
});
test("validates input with Zod", async () => {
mock.module("../../src/constants", () =>
buildMockConstants({
prisma: createStablePrismaMock({
role: {
findFirst: mock(() => Promise.resolve(null)),
},
}),
permissionsPrivateKey: "test-key",
}),
);
const { roles } = await import("../../src/managers/roles");
try {
await roles.create({
title: "",
moniker: "test",
});
expect(true).toBe(false);
} catch (e: any) {
// Zod should reject empty title
expect(e).toBeDefined();
}
});
});
// -------------------------------------------------------------------
// _buildPermissionNode
// -------------------------------------------------------------------
describe("_buildPermissionNode()", () => {
test("builds correct permission node format", async () => {
mock.module("../../src/constants", () =>
buildMockConstants({
prisma: createStablePrismaMock(),
permissionsPrivateKey: "test-key",
}),
);
const { roles } = await import("../../src/managers/roles");
expect(roles._buildPermissionNode("role-1", "read")).toBe(
"roles.role-1.read",
);
expect(roles._buildPermissionNode("role-2", "write")).toBe(
"roles.role-2.write",
);
});
});
});