1package replication23import (4 "context"5 "strings"6 "testing"78 "github.com/FelineStateMachine/tinyrelay/internal/event"9 "github.com/FelineStateMachine/tinyrelay/internal/storage"10)1112func TestQueuedPrivateRepositoryMetadataIsNotDelivered(t *testing.T) {13 store := openReplicationStore(t)14 ctx := context.Background()15 transport := &recordingTransport{}16 handler := NewDeliveryHandler(store, transport)17 for _, kind := range []int{event.KIND_REPO, event.KIND_REPO_STATE} {18 e := signedEvent(t, 1)19 e.Kind = kind20 e.Tags = [][]string{{"d", "private"}}21 if kind == event.KIND_REPO {22 e.Tags = append(e.Tags, []string{"private", "true"})23 }24 if err := event.Sign(&e, strings.Repeat("1", 64)); err != nil {25 t.Fatal(err)26 }27 if _, err := store.Save(ctx, e, storage.SaveOptions{Now: e.CreatedAt}); err != nil {28 t.Fatal(err)29 }30 if err := handler(ctx, storage.Intent{Kind: "delivery", EventID: e.ID, Target: "wss://public.example"}); err != nil {31 t.Fatal(err)32 }33 }34 if len(transport.events) != 0 {35 t.Fatal("private metadata escaped through a queued public delivery")36 }37}3839func TestPrivateScopeLookupFailureRetainsDeliveryForRetry(t *testing.T) {40 store := openReplicationStore(t)41 ctx := context.Background()42 e := signedEvent(t, 1)43 e.Kind = event.KIND_REPO_STATE44 e.Tags = [][]string{{"d", "private"}}45 if err := event.Sign(&e, strings.Repeat("1", 64)); err != nil {46 t.Fatal(err)47 }48 if _, err := store.Save(ctx, e, storage.SaveOptions{Now: e.CreatedAt}); err != nil {49 t.Fatal(err)50 }51 announcement := e52 announcement.Kind = event.KIND_REPO53 if err := event.Sign(&announcement, strings.Repeat("1", 64)); err != nil {54 t.Fatal(err)55 }56 if _, err := store.Save(ctx, announcement, storage.SaveOptions{Now: announcement.CreatedAt}); err != nil {57 t.Fatal(err)58 }59 if _, err := store.DB().ExecContext(ctx, "UPDATE events SET raw='invalid JSON' WHERE id=?", announcement.ID); err != nil {60 t.Fatal(err)61 }62 transport := &recordingTransport{}63 err := NewDeliveryHandler(store, transport)(ctx, storage.Intent{Kind: "delivery", EventID: e.ID, Target: "wss://public.example"})64 if err == nil {65 t.Fatal("privacy lookup failure was acknowledged instead of retained for retry")66 }67 if len(transport.events) != 0 {68 t.Fatal("delivery proceeded after a privacy lookup failure")69 }70}