import { describe, expect, it } from "vitest"; import {
computeBackoffMs,
isEntryEligibleForRecoveryRetry,
isPermanentDeliveryError,
} from "./delivery-queue.js";
describe("delivery-queue policy", () => {
describe("isPermanentDeliveryError", () => {
it.each([ "No conversation reference found for user:abc", "Forum send failed: chat not found (chat_id=user:123)", "403: Forbidden: bot is not a member of the channel chat", "user not found", "Bot was blocked by the user", "Forbidden: bot was kicked from the group chat", "chat_id is empty", "Outbound not configured for channel: demo-channel", "MatrixError: [403] User @bot:matrix.example.com not in room !mixedCase:matrix.example.com",
])("returns true for permanent error: %s", (msg) => {
expect(isPermanentDeliveryError(msg)).toBe(true);
});
it.each([ "network down", "ETIMEDOUT", "socket hang up", "rate limited", "500 Internal Server Error",
])("returns false for transient error: %s", (msg) => {
expect(isPermanentDeliveryError(msg)).toBe(false);
});
});
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.