Telegram: harden network retries and config

Co-authored-by: techboss <techboss@users.noreply.github.com>
This commit is contained in:
Gustavo Madeira Santana
2026-01-26 19:24:13 -05:00
committed by Gustavo Madeira Santana
parent e43f4c0628
commit b861a0bd73
36 changed files with 457 additions and 61 deletions

View File

@@ -0,0 +1,48 @@
import { describe, expect, it } from "vitest";
import { resolveTelegramAutoSelectFamilyDecision } from "./network-config.js";
describe("resolveTelegramAutoSelectFamilyDecision", () => {
it("prefers env enable over env disable", () => {
const decision = resolveTelegramAutoSelectFamilyDecision({
env: {
CLAWDBOT_TELEGRAM_ENABLE_AUTO_SELECT_FAMILY: "1",
CLAWDBOT_TELEGRAM_DISABLE_AUTO_SELECT_FAMILY: "1",
},
nodeMajor: 22,
});
expect(decision).toEqual({
value: true,
source: "env:CLAWDBOT_TELEGRAM_ENABLE_AUTO_SELECT_FAMILY",
});
});
it("uses env disable when set", () => {
const decision = resolveTelegramAutoSelectFamilyDecision({
env: { CLAWDBOT_TELEGRAM_DISABLE_AUTO_SELECT_FAMILY: "1" },
nodeMajor: 22,
});
expect(decision).toEqual({
value: false,
source: "env:CLAWDBOT_TELEGRAM_DISABLE_AUTO_SELECT_FAMILY",
});
});
it("uses config override when provided", () => {
const decision = resolveTelegramAutoSelectFamilyDecision({
network: { autoSelectFamily: true },
nodeMajor: 22,
});
expect(decision).toEqual({ value: true, source: "config" });
});
it("defaults to disable on Node 22", () => {
const decision = resolveTelegramAutoSelectFamilyDecision({ nodeMajor: 22 });
expect(decision).toEqual({ value: false, source: "default-node22" });
});
it("returns null when no decision applies", () => {
const decision = resolveTelegramAutoSelectFamilyDecision({ nodeMajor: 20 });
expect(decision).toEqual({ value: null });
});
});