59 lines
1.6 KiB
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")
|
|
}
|
|
}
|