create_mock_relay.go raw

   1  package tests
   2  
   3  import (
   4  	"context"
   5  
   6  	"github.com/getAlby/go-nostr"
   7  	"github.com/getAlby/hub/logger"
   8  )
   9  
  10  type mockSimplePool struct {
  11  	PublishedEvents []*nostr.Event
  12  }
  13  
  14  func NewMockSimplePool() *mockSimplePool {
  15  	return &mockSimplePool{}
  16  }
  17  
  18  func (relay *mockSimplePool) PublishMany(ctx context.Context, relayUrls []string, event nostr.Event) chan nostr.PublishResult {
  19  	logger.Logger.WithField("event", event).Info("Mock Publishing event")
  20  	relay.PublishedEvents = append(relay.PublishedEvents, &event)
  21  
  22  	channel := make(chan nostr.PublishResult)
  23  	go func() {
  24  		channel <- nostr.PublishResult{
  25  			RelayURL: "wss://fakerelay.com",
  26  		}
  27  		close(channel)
  28  	}()
  29  	return channel
  30  }
  31  
  32  func (relay *mockSimplePool) QuerySingle(
  33  	ctx context.Context,
  34  	urls []string,
  35  	filter nostr.Filter,
  36  	opts ...nostr.SubscriptionOption,
  37  ) *nostr.RelayEvent {
  38  	logger.Logger.Error("Mock pool QuerySingle is not supported yet")
  39  	return nil
  40  }
  41