package storage import ( "context" "testing" ) type fakeDeleter struct { deleted []string } func (f *fakeDeleter) DeleteObject(_ context.Context, key string) error { f.deleted = append(f.deleted, key) return nil } func TestPurgePublishAttachment(t *testing.T) { ctx := context.Background() deleter := &fakeDeleter{} if err := PurgePublishAttachment(ctx, deleter, ""); err != nil { t.Fatalf("empty key: %v", err) } if len(deleter.deleted) != 0 { t.Fatalf("expected no delete for empty key") } if err := PurgePublishAttachment(ctx, deleter, "avatars/foo.png"); err != nil { t.Fatalf("invalid key: %v", err) } if len(deleter.deleted) != 0 { t.Fatalf("expected no delete for non-publish key") } key := "publish-attachments/t1/a1/test.png" if err := PurgePublishAttachment(ctx, deleter, key); err != nil { t.Fatalf("purge: %v", err) } if len(deleter.deleted) != 1 || deleter.deleted[0] != key { t.Fatalf("deleted = %v, want [%s]", deleter.deleted, key) } }