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