Skip to content

Commit bc1b221

Browse files
committed
proper test
1 parent 56fecc1 commit bc1b221

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

pkg/store/cached_store_test.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,23 +126,29 @@ func TestCachedStore_CustomCacheSize(t *testing.T) {
126126
cachedStore, err := NewCachedStore(store, WithHeaderCacheSize(3))
127127
require.NoError(t, err)
128128

129-
// Load 5 headers - LRU should evict oldest entries
130-
for h := uint64(1); h <= 5; h++ {
131-
_, err = cachedStore.GetHeader(ctx, h)
129+
// Load header for height 1 and store its pointer.
130+
header1, err := cachedStore.GetHeader(ctx, 1)
131+
require.NoError(t, err)
132+
require.NotNil(t, header1)
133+
134+
// Load 4 more headers to ensure the first one is evicted from the cache of size 3.
135+
for h := uint64(2); h <= 5; h++ {
136+
_, err := cachedStore.GetHeader(ctx, h)
132137
require.NoError(t, err)
133138
}
134139

135-
// Height 5 should still be cached (most recent)
140+
// Height 5 should be a cache hit.
136141
header5a, err := cachedStore.GetHeader(ctx, 5)
137142
require.NoError(t, err)
138143
header5b, err := cachedStore.GetHeader(ctx, 5)
139144
require.NoError(t, err)
140145
assert.Same(t, header5a, header5b, "height 5 should be cached")
141146

142-
// Height 1 was evicted, so fetching it again will get a new object
147+
// Height 1 was evicted, so fetching it again will get a new object from the underlying store.
143148
header1a, err := cachedStore.GetHeader(ctx, 1)
144149
require.NoError(t, err)
145150
require.NotNil(t, header1a)
151+
assert.NotSame(t, header1, header1a, "height 1 should have been evicted and refetched")
146152
}
147153

148154
func TestCachedStore_Rollback_InvalidatesCache(t *testing.T) {

0 commit comments

Comments
 (0)