Ignore invalid feed discovery limits (#16)

This commit is contained in:
Autowebassat-blip 2026-06-12 06:04:55 +02:00 committed by GitHub
parent 9ed98ceaf7
commit 9942ef8dc6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 5 additions and 1 deletions

View file

@ -98,6 +98,8 @@ describe("CommandBoard API contracts", () => {
const providersBody = await providersResponse.json() as { providers: Array<{ id: string; enabledByDefault: boolean }> }; const providersBody = await providersResponse.json() as { providers: Array<{ id: string; enabledByDefault: boolean }> };
const discoverResponse = await fetch(`${baseUrl}/api/feeds/discover?q=microsaas&providers=manual-curated&includeUnvalidated=true`); const discoverResponse = await fetch(`${baseUrl}/api/feeds/discover?q=microsaas&providers=manual-curated&includeUnvalidated=true`);
const discoverBody = await discoverResponse.json() as { query: string; results: Array<{ feedUrl: string; provider: string }> }; const discoverBody = await discoverResponse.json() as { query: string; results: Array<{ feedUrl: string; provider: string }> };
const invalidLimitResponse = await fetch(`${baseUrl}/api/feeds/discover?q=microsaas&limit=-1&providers=manual-curated&includeUnvalidated=true`);
const invalidLimitBody = await invalidLimitResponse.json() as { results: Array<{ feedUrl: string; provider: string }> };
const rssResponse = await fetch(`${baseUrl}/rss/discover/microsaas.xml?providers=manual-curated&includeUnvalidated=true`); const rssResponse = await fetch(`${baseUrl}/rss/discover/microsaas.xml?providers=manual-curated&includeUnvalidated=true`);
const rssBody = await rssResponse.text(); const rssBody = await rssResponse.text();
const opmlResponse = await fetch(`${baseUrl}/opml/discover/microsaas.xml?providers=manual-curated&includeUnvalidated=true`); const opmlResponse = await fetch(`${baseUrl}/opml/discover/microsaas.xml?providers=manual-curated&includeUnvalidated=true`);
@ -108,6 +110,8 @@ describe("CommandBoard API contracts", () => {
expect(discoverResponse.status).toBe(200); expect(discoverResponse.status).toBe(200);
expect(discoverBody.query).toBe("microsaas"); expect(discoverBody.query).toBe("microsaas");
expect(discoverBody.results[0]).toMatchObject({ provider: "manual-curated" }); expect(discoverBody.results[0]).toMatchObject({ provider: "manual-curated" });
expect(invalidLimitResponse.status).toBe(200);
expect(invalidLimitBody.results[0]).toMatchObject({ provider: "manual-curated" });
expect(rssResponse.status).toBe(200); expect(rssResponse.status).toBe(200);
expect(rssBody).toContain("<rss"); expect(rssBody).toContain("<rss");
expect(opmlResponse.status).toBe(200); expect(opmlResponse.status).toBe(200);

View file

@ -331,7 +331,7 @@ function numberParam(value: string | null) {
return undefined; return undefined;
} }
const parsed = Number(value); const parsed = Number(value);
return Number.isFinite(parsed) ? parsed : undefined; return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;
} }
function listParam(value: string | null) { function listParam(value: string | null) {