feat(core): scaffold account manager platform
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
cloudEventSchema,
|
||||
velocityAccessRequestSchema,
|
||||
velocityAccessResponseSchema,
|
||||
} from "../src/index";
|
||||
|
||||
describe("shared service contracts", () => {
|
||||
it("accepts a game login event in CloudEvents format", () => {
|
||||
const event = cloudEventSchema.parse({
|
||||
id: "8cf5b035-4368-4fa8-b9bb-2835da752f20",
|
||||
specversion: "1.0",
|
||||
source: "/velocity/main",
|
||||
type: "games.minecraft.account-manager.game.login.allowed",
|
||||
subject: "minecraft-account/8667ba71b85a4004af54457a9734eed7",
|
||||
time: "2026-03-06T12:00:00.000Z",
|
||||
datacontenttype: "application/json",
|
||||
data: { username: "Notch" },
|
||||
});
|
||||
|
||||
expect(event.specversion).toBe("1.0");
|
||||
});
|
||||
|
||||
it("requires Velocity to send a Java UUID, username, and IP address", () => {
|
||||
const request = velocityAccessRequestSchema.parse({
|
||||
requestId: "6f1fd065-5298-42fa-b1ad-87a8916c6a8a",
|
||||
serverId: "velocity-main",
|
||||
minecraftUuid: "069a79f444e94726a5befca90e38aaf5",
|
||||
username: "Notch",
|
||||
ipAddress: "203.0.113.10",
|
||||
occurredAt: "2026-03-06T12:00:00.000Z",
|
||||
});
|
||||
|
||||
expect(request.username).toBe("Notch");
|
||||
expect(() =>
|
||||
velocityAccessRequestSchema.parse({ ...request, minecraftUuid: "not-a-uuid" }),
|
||||
).toThrow();
|
||||
});
|
||||
|
||||
it("only returns explicit allow or deny decisions to Velocity", () => {
|
||||
expect(
|
||||
velocityAccessResponseSchema.parse({
|
||||
allowed: false,
|
||||
message: "Please register your Minecraft account before joining.",
|
||||
}),
|
||||
).toEqual({
|
||||
allowed: false,
|
||||
message: "Please register your Minecraft account before joining.",
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user