mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-07-15 04:43:36 +00:00
68 lines
1.9 KiB
TypeScript
68 lines
1.9 KiB
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
|
|
vi.mock("../utils/logger.js", () => ({
|
|
guacLogger: {
|
|
debug: vi.fn(),
|
|
info: vi.fn(),
|
|
warn: vi.fn(),
|
|
error: vi.fn(),
|
|
success: vi.fn(),
|
|
},
|
|
}));
|
|
|
|
const { GuacamoleTokenService } = await import("./token-service.js");
|
|
|
|
describe("GuacamoleTokenService", () => {
|
|
const tokenService = GuacamoleTokenService.getInstance();
|
|
|
|
it("disables RDP pre-authentication when no credentials are configured", () => {
|
|
const token = tokenService.createRdpToken("windows.example.test", "", "");
|
|
const decrypted = tokenService.decryptToken(token);
|
|
|
|
expect(decrypted?.connection.settings).toMatchObject({
|
|
hostname: "windows.example.test",
|
|
port: 3389,
|
|
"ignore-cert": true,
|
|
"disable-auth": true,
|
|
});
|
|
expect(decrypted?.connection.settings.username).toBeUndefined();
|
|
expect(decrypted?.connection.settings.password).toBeUndefined();
|
|
});
|
|
|
|
it("keeps normal RDP credential authentication unchanged", () => {
|
|
const token = tokenService.createRdpToken(
|
|
"windows.example.test",
|
|
"Administrator",
|
|
"secret",
|
|
);
|
|
const decrypted = tokenService.decryptToken(token);
|
|
|
|
expect(decrypted?.connection.settings).toMatchObject({
|
|
hostname: "windows.example.test",
|
|
username: "Administrator",
|
|
password: "secret",
|
|
port: 3389,
|
|
});
|
|
expect(decrypted?.connection.settings["disable-auth"]).toBeUndefined();
|
|
});
|
|
|
|
it("preserves recording metadata outside guacd connection settings", () => {
|
|
const recording = {
|
|
hostId: 42,
|
|
userId: "user-1",
|
|
protocol: "vnc" as const,
|
|
path: "recording.guac",
|
|
startedAt: "2026-07-14T00:00:00.000Z",
|
|
};
|
|
const token = tokenService.createVncToken(
|
|
"vnc.example.test",
|
|
"user",
|
|
"secret",
|
|
{},
|
|
recording,
|
|
);
|
|
|
|
expect(tokenService.decryptToken(token)?.recording).toEqual(recording);
|
|
});
|
|
});
|