Antonio Mika
·
2026-10-10
1package pastes
2
3import (
4 "log/slog"
5 "testing"
6 "time"
7
8 "github.com/picosh/pico/pkg/db"
9 "github.com/picosh/pico/pkg/db/postgres"
10 "github.com/picosh/pico/pkg/db/postgres/pgtest"
11)
12
13var testDB *PsqlDB
14
15func TestMain(m *testing.M) {
16 pgtest.Main(m)
17}
18
19func cleanupTestData(t *testing.T) {
20 t.Helper()
21 if testDB == nil {
22 testDB = NewDB(postgres.NewDB(pgtest.URL(t), slog.New(slog.DiscardHandler)))
23 }
24 pgtest.Clean(t, testDB.Db)
25}
26
27func mustInsertPost(t *testing.T, post *db.Post) *db.Post {
28 t.Helper()
29 return pgtest.InsertPost(t, testDB, post)
30}
31
32func TestFindExpiredPosts(t *testing.T) {
33 cleanupTestData(t)
34
35 user, _ := testDB.RegisterUser("expiredpostowner", "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI expiredpostowner", "comment", "")
36
37 expired := time.Now().Add(-24 * time.Hour)
38 _ = mustInsertPost(t, &db.Post{
39 UserID: user.ID,
40 Filename: "expired.txt",
41 Slug: "expired",
42 Title: "Expired",
43 Space: "pastes",
44 ExpiresAt: &expired,
45 })
46
47 posts, err := testDB.FindExpiredPosts("pastes")
48 if err != nil {
49 t.Fatalf("FindExpiredPosts failed: %v", err)
50 }
51 if len(posts) != 1 {
52 t.Errorf("expected 1 expired post, got %d", len(posts))
53 }
54}