fix: persist resolved telegram delivery targets at runtime

This commit is contained in:
Ayaan Zaidi
2026-02-23 09:13:35 +05:30
committed by Ayaan Zaidi
parent 35fbf26d24
commit dcc52850c3
8 changed files with 632 additions and 77 deletions

View File

@@ -27,11 +27,16 @@ const { loadConfig } = vi.hoisted(() => ({
loadConfig: vi.fn(() => ({})),
}));
const { maybePersistResolvedTelegramTarget } = vi.hoisted(() => ({
maybePersistResolvedTelegramTarget: vi.fn(async () => {}),
}));
type TelegramSendTestMocks = {
botApi: Record<string, MockFn>;
botCtorSpy: MockFn;
loadConfig: MockFn;
loadWebMedia: MockFn;
maybePersistResolvedTelegramTarget: MockFn;
};
vi.mock("../web/media.js", () => ({
@@ -62,14 +67,20 @@ vi.mock("../config/config.js", async (importOriginal) => {
};
});
vi.mock("./target-writeback.js", () => ({
maybePersistResolvedTelegramTarget,
}));
export function getTelegramSendTestMocks(): TelegramSendTestMocks {
return { botApi, botCtorSpy, loadConfig, loadWebMedia };
return { botApi, botCtorSpy, loadConfig, loadWebMedia, maybePersistResolvedTelegramTarget };
}
export function installTelegramSendTestHooks() {
beforeEach(() => {
loadConfig.mockReturnValue({});
loadWebMedia.mockReset();
maybePersistResolvedTelegramTarget.mockReset();
maybePersistResolvedTelegramTarget.mockResolvedValue(undefined);
botCtorSpy.mockReset();
for (const fn of Object.values(botApi)) {
fn.mockReset();