opencode-config/.opencode/telegram/tests/config.test.ts
Sergey 1bc8b8ed05
feat(telegram): add telegram-send plugin-tool for Bot API messaging (#174)
* feat(telegram): add CLI project with Bot API client

* feat(telegram): add telegram-send plugin-tool

* test(telegram): add unit tests for markdown, config, api

* chore(env): add TELEGRAM_CHAT_ID to .env.example

* docs(handoff): add handoff and ADR for telegram-send

* docs(handoff): set PR number 174

* docs: update project map for telegram-send tool

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-31 20:42:33 +03:00

54 lines
No EOL
1.7 KiB
TypeScript

import { describe, it, expect, beforeEach, afterEach } from "vitest"
import { loadConfig } from "../src/config.ts"
describe("loadConfig", () => {
let savedToken: string | undefined
let savedChatId: string | undefined
beforeEach(() => {
savedToken = process.env.TELEGRAM_BOT_TOKEN
savedChatId = process.env.TELEGRAM_CHAT_ID
delete process.env.TELEGRAM_BOT_TOKEN
delete process.env.TELEGRAM_CHAT_ID
})
afterEach(() => {
if (savedToken === undefined) {
delete process.env.TELEGRAM_BOT_TOKEN
} else {
process.env.TELEGRAM_BOT_TOKEN = savedToken
}
if (savedChatId === undefined) {
delete process.env.TELEGRAM_CHAT_ID
} else {
process.env.TELEGRAM_CHAT_ID = savedChatId
}
})
it("returns {token, chatId} when both env vars present", () => {
process.env.TELEGRAM_BOT_TOKEN = "tok"
process.env.TELEGRAM_CHAT_ID = "cid"
expect(loadConfig()).toEqual({ token: "tok", chatId: "cid" })
})
it("throws when token missing", () => {
process.env.TELEGRAM_CHAT_ID = "cid"
expect(() => loadConfig()).toThrow(/TELEGRAM_BOT_TOKEN/)
})
it("throws when chatId missing without override", () => {
process.env.TELEGRAM_BOT_TOKEN = "tok"
expect(() => loadConfig()).toThrow(/chat_id/)
})
it("override chatId takes priority over env", () => {
process.env.TELEGRAM_BOT_TOKEN = "tok"
process.env.TELEGRAM_CHAT_ID = "env-id"
expect(loadConfig({ chatId: "argv-id" })).toEqual({ token: "tok", chatId: "argv-id" })
})
it("override chatId works even when env chatId missing", () => {
process.env.TELEGRAM_BOT_TOKEN = "tok"
expect(loadConfig({ chatId: "argv-id" })).toEqual({ token: "tok", chatId: "argv-id" })
})
})