Versie 1.0.0 in package.json en README-badge, no-store op de API
This commit is contained in:
@@ -56,6 +56,17 @@ if (config.NODE_ENV !== "test") {
|
||||
app.use(pinoHttp({ logger }));
|
||||
}
|
||||
|
||||
// ── Geen browsercache op de API ───────────────────────────────────────────────
|
||||
// Zonder Cache-Control mag de browser zelf bepalen hoe lang hij een antwoord
|
||||
// hergebruikt (heuristische caching). Dat verschilt per browser en profiel: de
|
||||
// update-melding bleef in de ene browser op een oud antwoord hangen terwijl een
|
||||
// verse browser het goede kreeg. API-antwoorden zijn per gebruiker en per moment,
|
||||
// dus die horen nooit uit de cache te komen.
|
||||
app.use("/api", (_req, res, next) => {
|
||||
res.setHeader("Cache-Control", "no-store");
|
||||
next();
|
||||
});
|
||||
|
||||
// ── API-routes ────────────────────────────────────────────────────────────────
|
||||
app.use("/api/health", healthRouter);
|
||||
app.use("/api/update-check", updateRouter);
|
||||
|
||||
@@ -68,6 +68,15 @@ describe("API", () => {
|
||||
assert.equal(body.latest, null);
|
||||
assert.equal(body.disabled, true);
|
||||
});
|
||||
|
||||
// Zonder expliciete header bepaalt de browser zelf hoe lang hij een
|
||||
// API-antwoord hergebruikt, en dat verschilt per browser.
|
||||
it("API-antwoorden komen nooit uit de browsercache", async () => {
|
||||
for (const pad of ["/api/health", "/api/update-check", "/api/bestaat-niet"]) {
|
||||
const res = await fetch(`${basis}${pad}`);
|
||||
assert.match(res.headers.get("cache-control") ?? "", /no-store/, pad);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe("Frontend serveren", () => {
|
||||
|
||||
Reference in New Issue
Block a user