mirror of
https://github.com/hanzoai/deploy.git
synced 2026-10-07 08:44:50 +00:00
go.mod still declared `module github.com/hanzoai/deploy` after the repo was renamed. A Go module path is not cosmetic — it is the resolvable location. So `go get github.com/hanzoai/cd` could not work, and anything importing this module had to spell a name that no longer exists at that address. The build log of v3.6.0 is where it surfaced: the compiler was still emitting github.com/hanzoai/deploy/cmd/cd/commands. 3541 import paths across 690 .go, 19 .proto, 4 .yaml, 3 .sh, 2 .mod, Procfile and Makefile. Plus the 62 ghcr.io/hanzoai/deploy image references, moved to ghcr.io/hanzoai/cd to match hanzo.yml's build target — a distinct string from the module path, replaced separately so neither could clobber the other. go mod tidy clean, CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build ./... clean. Co-authored-by: Hanzo Dev <[email protected]>
78 lines
2.3 KiB
Go
Generated
78 lines
2.3 KiB
Go
Generated
package mocks
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/alicebob/miniredis/v2"
|
|
"github.com/redis/go-redis/v9"
|
|
"github.com/stretchr/testify/mock"
|
|
|
|
cacheutil "github.com/hanzoai/cd/util/cache"
|
|
cacheutilmocks "github.com/hanzoai/cd/util/cache/mocks"
|
|
)
|
|
|
|
type MockCacheType int
|
|
|
|
const (
|
|
MockCacheTypeRedis MockCacheType = iota
|
|
MockCacheTypeInMem
|
|
)
|
|
|
|
type MockRepoCache struct {
|
|
mock.Mock
|
|
RedisClient *cacheutilmocks.MockCacheClient
|
|
StopRedisCallback func()
|
|
}
|
|
|
|
type MockCacheOptions struct {
|
|
RepoCacheExpiration time.Duration
|
|
RevisionCacheExpiration time.Duration
|
|
ReadDelay time.Duration
|
|
WriteDelay time.Duration
|
|
}
|
|
|
|
type CacheCallCounts struct {
|
|
ExternalSets int
|
|
ExternalGets int
|
|
ExternalDeletes int
|
|
ExternalRenames int
|
|
}
|
|
|
|
// Checks that the cache was called the expected number of times
|
|
func (mockCache *MockRepoCache) AssertCacheCalledTimes(t *testing.T, calls *CacheCallCounts) {
|
|
t.Helper()
|
|
mockCache.RedisClient.AssertNumberOfCalls(t, "Get", calls.ExternalGets)
|
|
mockCache.RedisClient.AssertNumberOfCalls(t, "Set", calls.ExternalSets)
|
|
mockCache.RedisClient.AssertNumberOfCalls(t, "Delete", calls.ExternalDeletes)
|
|
mockCache.RedisClient.AssertNumberOfCalls(t, "Rename", calls.ExternalRenames)
|
|
}
|
|
|
|
func (mockCache *MockRepoCache) ConfigureDefaultCallbacks() {
|
|
mockCache.RedisClient.On("Get", mock.Anything, mock.Anything).Return(nil)
|
|
mockCache.RedisClient.On("Set", mock.Anything).Return(nil)
|
|
mockCache.RedisClient.On("Delete", mock.Anything).Return(nil)
|
|
mockCache.RedisClient.On("Rename", mock.Anything, mock.Anything, mock.Anything).Return(nil)
|
|
}
|
|
|
|
func NewInMemoryRedis() (*redis.Client, func()) {
|
|
cacheutil.NewInMemoryCache(5 * time.Second)
|
|
mr, err := miniredis.Run()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return redis.NewClient(&redis.Options{Addr: mr.Addr()}), mr.Close
|
|
}
|
|
|
|
func NewMockRepoCache(cacheOpts *MockCacheOptions) *MockRepoCache {
|
|
redisClient, stopRedis := NewInMemoryRedis()
|
|
redisCacheClient := &cacheutilmocks.MockCacheClient{
|
|
ReadDelay: cacheOpts.ReadDelay,
|
|
WriteDelay: cacheOpts.WriteDelay,
|
|
BaseCache: cacheutil.NewRedisCache(redisClient, cacheOpts.RepoCacheExpiration, cacheutil.RedisCompressionNone),
|
|
}
|
|
newMockCache := &MockRepoCache{RedisClient: redisCacheClient, StopRedisCallback: stopRedis}
|
|
newMockCache.ConfigureDefaultCallbacks()
|
|
return newMockCache
|
|
}
|