store: burn_after_reads>0 implies burn-after-read mode (#82)
CI / test (pull_request) Successful in 24s
CI / docker (pull_request) Skipped

This commit is contained in:
2026-09-09 18:28:00 -05:00
parent 69da340224
commit f37cc932c4
2 changed files with 33 additions and 2 deletions
+27
View File
@@ -46,6 +46,33 @@ func getWithCookie(t *testing.T, h anyHandler, id, viewer string) *httptest.Resp
return rec
}
// #82: burn_after_reads > 0 alone must enable burn-after-read
// even without burn_after_read: true.
func TestBurnReadsImpliedByBurnAfterReads(t *testing.T) {
s := testServer(t)
h := s.routes()
req := httptest.NewRequest("POST", "/api/pastes", strings.NewReader(`{"content":"implied","burn_after_reads":2}`))
rec := httptest.NewRecorder()
h.ServeHTTP(rec, req)
if rec.Code != 201 {
t.Fatalf("create burn_after_reads-only: %d %s", rec.Code, rec.Body.String())
}
var created struct {
ID string `json:"id"`
}
json.Unmarshal(rec.Body.Bytes(), &created)
if rec := getWithCookie(t, h, created.ID, "aaa"); rec.Code != 200 {
t.Fatalf("read 1: %d", rec.Code)
}
if rec := getWithCookie(t, h, created.ID, "bbb"); rec.Code != 200 {
t.Fatalf("read 2: %d", rec.Code)
}
if rec := getWithCookie(t, h, created.ID, "ccc"); rec.Code != 404 {
t.Fatalf("read 3 expected 404 (burned), got %d", rec.Code)
}
}
func TestBurnAfterNReadsDistinctViewers(t *testing.T) {
s := testServer(t)
h := s.routes()