diff --git a/core/peer/peer.go b/core/peer/peer.go index 4429b4bf30f..45b5a2119d4 100644 --- a/core/peer/peer.go +++ b/core/peer/peer.go @@ -734,6 +734,9 @@ type DeliverSupportManager struct { func (dsm DeliverSupportManager) GetChain(chainID string) (deliver.Support, bool) { channel, ok := chains.list[chainID] + if !ok { + return nil, ok + } return channel.cs, ok } diff --git a/core/peer/peer_test.go b/core/peer/peer_test.go index f0eaf98b61d..689ea1691f0 100644 --- a/core/peer/peer_test.go +++ b/core/peer/peer_test.go @@ -213,3 +213,18 @@ func TestGetLocalIP(t *testing.T) { ip := GetLocalIP() t.Log(ip) } + +func TestDeliverSupportManager(t *testing.T) { + // reset chains for testing + MockInitialize() + + manager := &DeliverSupportManager{} + chainSupport, ok := manager.GetChain("fake") + assert.Nil(t, chainSupport, "chain support should be nil") + assert.False(t, ok, "Should not find fake channel") + + MockCreateChain("testchain") + chainSupport, ok = manager.GetChain("testchain") + assert.NotNil(t, chainSupport, "chain support should not be nil") + assert.True(t, ok, "Should find testchain channel") +}