diff --git a/backend/src/errors/index.ts b/backend/src/errors/index.ts index 44ea935..6a43ebf 100644 --- a/backend/src/errors/index.ts +++ b/backend/src/errors/index.ts @@ -29,10 +29,6 @@ export function userConflict(): Response { return generateErrorResponse(`User already exists or conflicts`, 403) } -export function timelineMissing(): Response { - return generateErrorResponse(`The timeline is invalid or being regenerated`, 404) -} - export function clientUnknown(): Response { return generateErrorResponse(`The client is unknown or invalid`, 403) } diff --git a/backend/test/mastodon/timelines.spec.ts b/backend/test/mastodon/timelines.spec.ts index 6c835d2..76d1dd3 100644 --- a/backend/test/mastodon/timelines.spec.ts +++ b/backend/test/mastodon/timelines.spec.ts @@ -83,6 +83,21 @@ describe('Mastodon APIs', () => { assert.equal(await data.text(), 'cached data') }) + test('home returns empty if not in cache', async () => { + const db = await makeDB() + const connectedActor = await createPerson(domain, db, userKEK, 'sven@cloudflare.com') + const kv_cache: any = { + async get() { + return null + }, + } + const req = new Request('https://' + domain) + const data = await timelines_home.handleRequest(req, kv_cache, connectedActor) + const posts = await data.json>() + + assert.equal(posts.length, 0) + }) + test('public returns Notes', async () => { const db = await makeDB() const actor = await createPerson(domain, db, userKEK, 'sven@cloudflare.com') diff --git a/functions/api/v1/timelines/home.ts b/functions/api/v1/timelines/home.ts index 7296a01..ae9aa34 100644 --- a/functions/api/v1/timelines/home.ts +++ b/functions/api/v1/timelines/home.ts @@ -1,7 +1,6 @@ import type { Env } from 'wildebeest/backend/src/types/env' import type { ContextData } from 'wildebeest/backend/src/types/context' import type { Actor } from 'wildebeest/backend/src/activitypub/actors/' -import * as errors from 'wildebeest/backend/src/errors' const headers = { 'Access-Control-Allow-Origin': '*', @@ -24,7 +23,7 @@ export async function handleRequest(request: Request, cache: KVNamespace, actor: const timeline = await cache.get(actor.id + '/timeline/home') if (timeline === null) { - return errors.timelineMissing() + return new Response(JSON.stringify([]), { headers }) } return new Response(timeline, { headers }) }