Skip to content

Add unit tests for telegram-client.js and mcp-server.js #15

Description

@dapi

Problem

Project has vitest run configured but zero test files. CLAUDE.md recommends adding coverage when extending telegram-client.js or message-sync-service.js by mocking MTProto responses.

Proposed solution

Add unit tests starting with the most critical modules:

  1. telegram-client.test.js — mock gramjs client.sendText/client.sendFile, verify:

    • sendTextMessage passes correct params (noWebpage, replyTo, parse mode)
    • sendFileMessage passes correct params
    • Input validation (empty text, missing file)
    • normalizeChannelId handling
  2. mcp-server.test.js — test MCP tool handlers with mocked telegramClient:

    • Schema validation (zod schemas reject invalid input)
    • Handlers pass correct options to client methods
    • Response format
  3. cli.test.js — test CLI option parsing:

    • --no-preview maps to noPreview: true
    • --parse-mode normalization
    • --topic / --reply-to parsing

Notes

  • Use vitest
  • Mock MTProto layer (gramjs) — no real Telegram calls
  • Name files <module>.test.js in project root or tests/ directory
  • Consider dependency injection or module mocking for TelegramClient

See also: #10 (added --no-preview without tests)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions