Ctrl K
ComunidadGuías…

internal/store/postgres/channel_verified_integration_test.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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")
	}
}