owpengram-server/internal/store/postgres/channel_verified_integration_test.go

59 lines
1.6 KiB
Go

package postgres
import (
"context"
"testing"
"telesrv/internal/domain"
)
func TestChannelStoreSetChannelVerifiedRefreshesRowCache(t *testing.T) {
pool := testPool(t)
ctx := context.Background()
suffix := randomSuffix(t)
users := NewUserStore(pool)
owner := createTestUser(t, ctx, users, "+1886"+suffix+"91", "VerifiedChannelOwner", "")
var channelIDs []int64
t.Cleanup(func() {
if len(channelIDs) != 0 {
_, _ = pool.Exec(ctx, "DELETE FROM channels WHERE id = ANY($1::bigint[])", channelIDs)
}
_, _ = pool.Exec(ctx, "DELETE FROM users WHERE id = $1", owner.ID)
})
cache := NewChannelRowCache(8)
channels := NewChannelStore(pool, WithChannelRowCache(cache))
created, err := channels.CreateChannel(ctx, domain.CreateChannelRequest{
CreatorUserID: owner.ID,
Title: "verified channel " + suffix,
Broadcast: true,
Date: 1700001100,
})
if err != nil {
t.Fatalf("create channel: %v", err)
}
channelIDs = append(channelIDs, created.Channel.ID)
warm, err := channels.GetChannelByID(ctx, created.Channel.ID)
if err != nil {
t.Fatalf("warm channel cache: %v", err)
}
if warm.Verified {
t.Fatalf("created channel verified=true, want false")
}
updated, err := channels.SetChannelVerified(ctx, created.Channel.ID, true)
if err != nil {
t.Fatalf("set verified: %v", err)
}
if !updated.Verified {
t.Fatalf("updated verified=false, want true")
}
got, err := channels.GetChannelByID(ctx, created.Channel.ID)
if err != nil {
t.Fatalf("get updated channel: %v", err)
}
if !got.Verified {
t.Fatalf("cached channel verified=false after update, want true")
}
}