test: isolate media network fetches

This commit is contained in:
Peter Steinberger
2026-04-10 23:56:00 +01:00
parent 6bc7822ec7
commit f3abc0c076
3 changed files with 16 additions and 13 deletions

View File

@@ -3,7 +3,7 @@ import * as ssrf from "../infra/net/ssrf.js";
import { normalizeLowercaseStringOrEmpty } from "../shared/string-coerce.js";
export function mockPinnedHostnameResolution(addresses: string[] = ["93.184.216.34"]) {
return vi.spyOn(ssrf, "resolvePinnedHostname").mockImplementation(async (hostname) => {
const resolve = async (hostname: string) => {
const normalized = normalizeLowercaseStringOrEmpty(hostname).replace(/\.$/, "");
const pinnedAddresses = [...addresses];
return {
@@ -11,5 +11,15 @@ export function mockPinnedHostnameResolution(addresses: string[] = ["93.184.216.
addresses: pinnedAddresses,
lookup: ssrf.createPinnedLookup({ hostname: normalized, addresses: pinnedAddresses }),
};
});
};
const pinned = vi.spyOn(ssrf, "resolvePinnedHostname").mockImplementation(resolve);
const pinnedWithPolicy = vi
.spyOn(ssrf, "resolvePinnedHostnameWithPolicy")
.mockImplementation(async (hostname) => resolve(hostname));
return {
mockRestore: () => {
pinned.mockRestore();
pinnedWithPolicy.mockRestore();
},
};
}