mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-29 14:45:24 +00:00
feat: finish the ai plugin (B18)
This commit is contained in:
1 parent
6b4d1432ab
commit
21937a6b02
193 files changed
+23429
-4244
No files matched your search
@@ -0,0 +1,38 @@
|
||||
import { afterEach, describe, expect, it } from "vitest";
|
||||
import { startServer, type TestServer } from "./helpers";
|
||||
|
||||
let server: TestServer | null = null;
|
||||
|
||||
afterEach(async () => {
|
||||
await server?.close();
|
||||
server = null;
|
||||
});
|
||||
|
||||
interface FleetsService {
|
||||
create: (input: { name: string }) => Promise<{ id: number; name: string }>;
|
||||
addMember: (fleetId: number, hostId: number) => Promise<void>;
|
||||
}
|
||||
|
||||
describe("fleets.access", () => {
|
||||
it("needs fleets.manage to change a fleet", async () => {
|
||||
server = await startServer({ permissions: ["fleets.view"] });
|
||||
const service = server.mock.services.get("fleets.access") as FleetsService;
|
||||
|
||||
await expect(
|
||||
server.mock.ctx.asUser("user-1", () => service.create({ name: "prod" })),
|
||||
).rejects.toThrow("fleets.manage");
|
||||
});
|
||||
|
||||
it("adds only hosts the caller can see", async () => {
|
||||
server = await startServer();
|
||||
const service = server.mock.services.get("fleets.access") as FleetsService;
|
||||
const run = <T>(fn: () => Promise<T>) =>
|
||||
server!.mock.ctx.asUser("user-1", fn);
|
||||
|
||||
const fleet = await run(() => service.create({ name: "prod" }));
|
||||
await run(() => service.addMember(fleet.id, 10));
|
||||
await expect(run(() => service.addMember(fleet.id, 99))).rejects.toThrow(
|
||||
"Host not found",
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user