From b40b63ded2ce9ad0ea745caea5ab40bd6b6c54dd Mon Sep 17 00:00:00 2001 From: Jeesun Kim Date: Tue, 21 Jul 2026 11:58:04 -0700 Subject: [PATCH 1/2] add cache-control at 15 minutes max for v1 handler --- backend/lumens.ts | 4 ++++ test/tests/integration/backend.ts | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/backend/lumens.ts b/backend/lumens.ts index b7f24df2..25b030c1 100644 --- a/backend/lumens.ts +++ b/backend/lumens.ts @@ -18,6 +18,10 @@ export async function v1Handler(_: any, res: Response, next: NextFunction) { try { const cachedData = await getOrThrow(redisClient, "lumensV1"); const obj: CachedData = JSON.parse(cachedData); + res.setHeader( + "Cache-Control", + "public, max-age=300, stale-while-revalidate=600", + ); res.json(obj); } catch (e) { next(e); diff --git a/test/tests/integration/backend.ts b/test/tests/integration/backend.ts index 36f85341..c84b392d 100644 --- a/test/tests/integration/backend.ts +++ b/test/tests/integration/backend.ts @@ -18,7 +18,12 @@ describe("integration", function () { describe("backend api endpoints", function () { it("/api/lumens should return successfuly with data", async function () { - let { body } = await request(app).get("/api/lumens").expect(200); + let { body, headers } = await request(app) + .get("/api/lumens") + .expect(200) + .expect("Cache-Control", "public, max-age=300, stale-while-revalidate=600"); + + chai.expect(headers["cache-control"]).to.include("max-age=300"); chai.expect(body).to.be.an("object"); chai.expect(Object.keys(body).length).to.not.equal(0); From bd1f9e4bddf3221fb947a5f0d6e451cf9c471b48 Mon Sep 17 00:00:00 2001 From: Jeesun Kim Date: Wed, 22 Jul 2026 12:26:36 -0700 Subject: [PATCH 2/2] exact match the cache-control description --- test/tests/integration/backend.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/test/tests/integration/backend.ts b/test/tests/integration/backend.ts index c84b392d..e0bce6a6 100644 --- a/test/tests/integration/backend.ts +++ b/test/tests/integration/backend.ts @@ -21,9 +21,14 @@ describe("integration", function () { let { body, headers } = await request(app) .get("/api/lumens") .expect(200) - .expect("Cache-Control", "public, max-age=300, stale-while-revalidate=600"); + .expect( + "Cache-Control", + "public, max-age=300, stale-while-revalidate=600", + ); - chai.expect(headers["cache-control"]).to.include("max-age=300"); + chai + .expect(headers["cache-control"]) + .to.include("public, max-age=300, stale-while-revalidate=600"); chai.expect(body).to.be.an("object"); chai.expect(Object.keys(body).length).to.not.equal(0);