fix(telegram): add dnsResultOrder=ipv4first default on Node 22+ to fix fetch failures (#5405)

Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: 71366e9532
Co-authored-by: Glucksberg <80581902+Glucksberg@users.noreply.github.com>
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com>
Reviewed-by: @obviyus
This commit is contained in:
Glucksberg
2026-02-22 10:37:51 -04:00
committed by GitHub
parent 4e65e61612
commit 53adae9cec
8 changed files with 153 additions and 13 deletions

View File

@@ -2,6 +2,7 @@ import { afterEach, describe, expect, it, vi } from "vitest";
import {
resetTelegramNetworkConfigStateForTests,
resolveTelegramAutoSelectFamilyDecision,
resolveTelegramDnsResultOrderDecision,
} from "./network-config.js";
// Mock isWSL2Sync at the top level
@@ -129,3 +130,34 @@ describe("resolveTelegramAutoSelectFamilyDecision", () => {
});
});
});
describe("resolveTelegramDnsResultOrderDecision", () => {
it("uses env override when provided", () => {
const decision = resolveTelegramDnsResultOrderDecision({
env: { OPENCLAW_TELEGRAM_DNS_RESULT_ORDER: "verbatim" },
nodeMajor: 22,
});
expect(decision).toEqual({
value: "verbatim",
source: "env:OPENCLAW_TELEGRAM_DNS_RESULT_ORDER",
});
});
it("uses config override when provided", () => {
const decision = resolveTelegramDnsResultOrderDecision({
network: { dnsResultOrder: "ipv4first" },
nodeMajor: 20,
});
expect(decision).toEqual({ value: "ipv4first", source: "config" });
});
it("defaults to ipv4first on Node 22", () => {
const decision = resolveTelegramDnsResultOrderDecision({ nodeMajor: 22 });
expect(decision).toEqual({ value: "ipv4first", source: "default-node22" });
});
it("returns null when no dns decision applies", () => {
const decision = resolveTelegramDnsResultOrderDecision({ nodeMajor: 20 });
expect(decision).toEqual({ value: null });
});
});