import {describe, it, expect, vi, beforeEach} from 'vitest';
import {getClientWithContext} from './server.js';
import {GmailClient, GmailAuthContext} from '../gmail/client.js';
vi.mock('../gmail/client.js', () => ({
GmailClient: {
create: vi.fn().mockReturnValue({
initializeLabelFilter: vi.fn().mockResolvedValue(undefined),
}),
},
}));
describe('getClientWithContext', () => {
beforeEach(() => {
vi.clearAllMocks();
});
it('throws when context is null', async () => {
await expect(getClientWithContext(null)).rejects.toThrow('No auth context available');
});
it('creates and initializes client when context provided', async () => {
const context: GmailAuthContext = {
googleAccessToken: 'token',
email: 'test@example.com',
allowedLabels: ['INBOX'],
};
const client = await getClientWithContext(context);
expect(GmailClient.create).toHaveBeenCalledWith(context);
expect(client.initializeLabelFilter).toHaveBeenCalled();
});
});