fix(feeds): enforce freshness window (#52)

This commit is contained in:
lazyGPT07 2026-06-13 23:54:53 -06:00 • committed by GitHub
parent 90fffb124e
commit be530ab687
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 44 additions and 0 deletions

View file

@ -100,4 +100,29 @@ describe("discovery orchestration", () => {
expect(response.providerErrors).toEqual([{ provider: "broken-provider", error: "provider unavailable" }]);
expect(response.results).toHaveLength(1);
});
it("enforces the requested freshness window", async () => {
const provider: FeedDiscoveryProvider = {
id: "freshness-provider",
name: "Freshness",
enabledByDefault: true,
requiresApiKey: false,
async search() {
return [
{ ...baseFeed, feedUrl: "https://example.com/fresh.xml", lastPublishedAt: new Date(Date.now() - 5 * 86_400_000).toISOString() },
{ ...baseFeed, feedUrl: "https://example.com/stale.xml", lastPublishedAt: new Date(Date.now() - 60 * 86_400_000).toISOString() },
{ ...baseFeed, feedUrl: "https://example.com/unknown.xml", lastPublishedAt: undefined },
{ ...baseFeed, feedUrl: "https://example.com/invalid.xml", lastPublishedAt: "not-a-date" },
{ ...baseFeed, feedUrl: "https://example.com/future.xml", lastPublishedAt: new Date(Date.now() + 86_400_000).toISOString() }
];
}
};
const response = await discoverFeeds(
{ q: "microsaas", freshnessDays: 30, includeUnvalidated: true },
{ providers: [provider] }
);
expect(response.results.map((feed) => feed.feedUrl)).toEqual(["https://example.com/fresh.xml"]);
});
});