api_backend_test.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package eth
  2. import (
  3. "testing"
  4. "github.com/ethereum/go-ethereum/core/types"
  5. "github.com/ethereum/go-ethereum/node"
  6. "github.com/stretchr/testify/require"
  7. )
  8. func TestEthAPIBackend_SubscribePendingLogsEvent(t *testing.T) {
  9. conf := &Config{
  10. RaftMode: false,
  11. }
  12. stack, err := node.New(&node.Config{})
  13. if err != nil {
  14. t.Fatalf("failed to create node, err = %v", err)
  15. }
  16. eth, err := New(stack, conf)
  17. if err != nil {
  18. t.Fatalf("failed to create eth service, err = %v", err)
  19. }
  20. b := &EthAPIBackend{
  21. eth: eth,
  22. }
  23. ch := make(chan []*types.Log, 1)
  24. _ = b.SubscribePendingLogsEvent(ch)
  25. recipientCount := eth.ConsensusServicePendingLogsFeed().Send([]*types.Log{})
  26. require.Zero(t, recipientCount, "not using consensus service so its event feed should not have subscribers")
  27. require.Zero(t, len(ch), "not using consensus service so subscribed channel should not have received event")
  28. }
  29. func TestEthAPIBackend_SubscribePendingLogsEvent_SubscribesToConsensusServiceFeed(t *testing.T) {
  30. conf := &Config{
  31. RaftMode: true,
  32. }
  33. stack, err := node.New(&node.Config{})
  34. if err != nil {
  35. t.Fatalf("failed to create node, err = %v", err)
  36. }
  37. eth, err := New(stack, conf)
  38. if err != nil {
  39. t.Fatalf("failed to create eth service, err = %v ", err)
  40. }
  41. b := &EthAPIBackend{
  42. eth: eth,
  43. }
  44. ch := make(chan []*types.Log, 1)
  45. _ = b.SubscribePendingLogsEvent(ch)
  46. recipientCount := eth.ConsensusServicePendingLogsFeed().Send([]*types.Log{})
  47. require.NotZero(t, recipientCount, "consensus service in use so its event feed should have subscribers")
  48. require.Equal(t, 1, len(ch), "consensus service in use so subscribed channel should have received event")
  49. }