64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
package images
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestAggregateImageStatus(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
f := func(statuses []Status, expected Status) {
|
|
t.Helper()
|
|
require.Equal(t, expected, AggregateImageStatus(statuses))
|
|
}
|
|
|
|
f([]Status{Skipped, Skipped, Skipped}, Skipped)
|
|
f([]Status{Preparing, Preparing}, Preparing)
|
|
f([]Status{Updated, Outdated, Processing, Error}, Outdated)
|
|
f([]Status{Updated, Processing, Error}, Processing)
|
|
f([]Status{Updated, Error}, Error)
|
|
f([]Status{Updated, Updated}, Updated)
|
|
f([]Status{}, Updated)
|
|
f([]Status{Updated, Skipped}, Updated)
|
|
}
|
|
|
|
func TestCachedResourceImageStatusMiss(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
_, err := CachedResourceImageStatus("status-test-miss-key")
|
|
require.Error(t, err)
|
|
}
|
|
|
|
func TestCachedResourceImageStatusHitAndEvict(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
key := "status-test-hit-evict-key"
|
|
|
|
CacheResourceImageStatus(key, Updated)
|
|
|
|
s, err := CachedResourceImageStatus(key)
|
|
require.NoError(t, err)
|
|
require.Equal(t, Updated, s)
|
|
|
|
EvictImageStatus(key)
|
|
|
|
_, err = CachedResourceImageStatus(key)
|
|
require.Error(t, err)
|
|
}
|
|
|
|
func TestCacheErrorImageStatus(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
key := "status-test-error-key"
|
|
|
|
CacheErrorImageStatus(key)
|
|
|
|
s, err := CachedResourceImageStatus(key)
|
|
require.NoError(t, err)
|
|
require.Equal(t, Error, s)
|
|
|
|
EvictImageStatus(key)
|
|
}
|