test(server): add unit tests for requireLocalUser guard

This commit is contained in:
Jannis Braun
2026-04-02 10:47:43 +02:00
parent 017256162b
commit 8f2f494ffd
+38
View File
@@ -0,0 +1,38 @@
import { describe, it, expect, vi } from 'vitest';
import { requireLocalUser } from './auth.js';
function mockRequest(homeInstance: string | null) {
return { homeInstance } as any;
}
function mockReply() {
const reply: any = {};
reply.code = vi.fn().mockReturnValue(reply);
reply.send = vi.fn().mockReturnValue(reply);
return reply;
}
describe('requireLocalUser', () => {
it('passes through for local users (homeInstance is null)', async () => {
const request = mockRequest(null);
const reply = mockReply();
await requireLocalUser(request, reply);
expect(reply.code).not.toHaveBeenCalled();
expect(reply.send).not.toHaveBeenCalled();
});
it('returns 403 for federated users (homeInstance is set)', async () => {
const request = mockRequest('nova.ddns.net');
const reply = mockReply();
await requireLocalUser(request, reply);
expect(reply.code).toHaveBeenCalledWith(403);
expect(reply.send).toHaveBeenCalledWith({
error: 'Federated users must use their home instance for DM operations',
statusCode: 403,
});
});
});