fix: Always return searchWrapper to enable shadow traffic (#108373)

Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
This commit is contained in:
Bruno Abrantes
2025-07-21 13:53:44 +02:00
committed by GitHub
parent b70d1b0724
commit 6c84461b7a
2 changed files with 8 additions and 40 deletions
+7 -14
View File
@@ -24,21 +24,14 @@ type DualWriter interface {
func NewSearchClient(dual DualWriter, gr schema.GroupResource, unifiedClient resourcepb.ResourceIndexClient,
legacyClient resourcepb.ResourceIndexClient, features featuremgmt.FeatureToggles) resourcepb.ResourceIndexClient {
if dual.IsEnabled(gr) {
return &searchWrapper{
dual: dual,
groupResource: gr,
unifiedClient: unifiedClient,
legacyClient: legacyClient,
features: features,
logger: log.New("unified-storage.search-client"),
}
return &searchWrapper{
dual: dual,
groupResource: gr,
unifiedClient: unifiedClient,
legacyClient: legacyClient,
features: features,
logger: log.New("unified-storage.search-client"),
}
//nolint:errcheck
if ok, _ := dual.ReadFromUnified(context.Background(), gr); ok {
return unifiedClient
}
return legacyClient
}
type searchWrapper struct {
@@ -130,9 +130,8 @@ func setupTestSearchWrapper(t *testing.T, dual *MockDualWriter, unifiedClient, l
func TestSearchClient_NewSearchClient(t *testing.T) {
gr, unifiedClient, legacyClient, features := setupTestSearchClient(t)
t.Run("returns wrapper when dual writer is enabled", func(t *testing.T) {
t.Run("always returns wrapper", func(t *testing.T) {
dual := &MockDualWriter{} // Create fresh mock for this test
dual.On("IsEnabled", gr).Return(true)
client := NewSearchClient(dual, gr, unifiedClient, legacyClient, features)
@@ -142,30 +141,6 @@ func TestSearchClient_NewSearchClient(t *testing.T) {
assert.Equal(t, gr, wrapper.groupResource)
assert.Equal(t, unifiedClient, wrapper.unifiedClient)
assert.Equal(t, legacyClient, wrapper.legacyClient)
dual.AssertExpectations(t)
})
t.Run("returns unified client when dual writer disabled but read from unified", func(t *testing.T) {
dual := &MockDualWriter{} // Create fresh mock for this test
dual.On("IsEnabled", gr).Return(false)
dual.On("ReadFromUnified", mock.Anything, gr).Return(true, nil)
client := NewSearchClient(dual, gr, unifiedClient, legacyClient, features)
assert.Equal(t, unifiedClient, client)
dual.AssertExpectations(t)
})
t.Run("returns legacy client when dual writer disabled and not reading from unified", func(t *testing.T) {
dual := &MockDualWriter{} // Create fresh mock for this test
dual.On("IsEnabled", gr).Return(false)
dual.On("ReadFromUnified", mock.Anything, gr).Return(false, nil)
client := NewSearchClient(dual, gr, unifiedClient, legacyClient, features)
assert.Equal(t, legacyClient, client)
dual.AssertExpectations(t)
})
}