From 8fc423d90eff78176fa538f2cf838cb671592e99 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Wed, 13 May 2026 16:06:38 -0500 Subject: feat(telega): add telega.el module with docker-backed TDLib New `modules/telega-config.el` configures telega.el as an in-Emacs Telegram client. `telega-use-docker' is on so TDLib runs in a container instead of needing a system-level build -- pairs with a follow-up `scripts/setup-telega.sh' for fresh-clone installs. First-run auth (phone + verification code) is interactive inside `M-x telega' and isn't scripted here. Launcher binding: `C-; G` (mnemonic: teleGram). `C-; t` and `C-; m t` were both taken (test-runner, music's "repeat track"), so the launcher landed on a free top-level letter. Two tests cover the wiring: module loads, launcher is bound. --- tests/test-telega-config.el | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/test-telega-config.el (limited to 'tests') diff --git a/tests/test-telega-config.el b/tests/test-telega-config.el new file mode 100644 index 00000000..ace96555 --- /dev/null +++ b/tests/test-telega-config.el @@ -0,0 +1,25 @@ +;;; test-telega-config.el --- Tests for Telegram (telega) module wiring -*- lexical-binding: t; -*- + +;;; Commentary: +;; Lightweight asserts that the module loads, exposes the launcher, +;; sets the docker preference, and registers the C-; G keybinding. +;; The bulk of telega.el's behaviour is owned upstream; the tests +;; here only cover what this config wires. + +;;; Code: + +(require 'ert) + +(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory)) +(require 'telega-config) + +(ert-deftest test-telega-config-loads-cleanly () + "Normal: module loads without errors and `provide's its feature." + (should (featurep 'telega-config))) + +(ert-deftest test-telega-config-launcher-binding-is-telega () + "Normal: =C-; G= invokes `telega'." + (should (eq (keymap-lookup cj/custom-keymap "G") #'telega))) + +(provide 'test-telega-config) +;;; test-telega-config.el ends here -- cgit v1.2.3