From f8bd1d109f62ae93eda44e7deb447772ddd1f214 Mon Sep 17 00:00:00 2001 From: Will Andrews Date: Tue, 19 Nov 2024 21:41:33 +0000 Subject: [PATCH] rest of tests done --- hander_test.go | 106 ------------------------------------------------- handler.go | 2 +- store/feed.go | 4 +- 3 files changed, 3 insertions(+), 109 deletions(-) delete mode 100644 hander_test.go diff --git a/hander_test.go b/hander_test.go deleted file mode 100644 index 657b049..0000000 --- a/hander_test.go +++ /dev/null @@ -1,106 +0,0 @@ -package main - -import ( - "context" - "encoding/json" - "testing" - - "github.com/bluesky-social/indigo/api/atproto" - apibsky "github.com/bluesky-social/indigo/api/bsky" - "github.com/bluesky-social/jetstream/pkg/models" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "github.com/willdot/bskyfeedgen/store" -) - -func TestHandlerReceivesSubscribeMessage(t *testing.T) { - db, err := store.New(":memory:") - require.NoError(t, err) - - handler := handler{ - store: db, - } - - record := apibsky.FeedPost{ - Text: "/subscribe", - Reply: &apibsky.FeedPost_ReplyRef{ - Parent: &atproto.RepoStrongRef{ - Uri: "parent-uri", - }, - }, - } - - recordB, err := json.Marshal(record) - require.NoError(t, err) - - event := &models.Event{ - Did: myDid, - Commit: &models.Commit{ - Operation: models.CommitOperationCreate, - Collection: "app.bsky.feed.post", - RKey: "subscribe-post-rkey", - Record: recordB, - }, - } - - // send the event twice to simulate subscribing to the same post twice, to check only - // 1 subscription is created - err = handler.HandleEvent(context.Background(), event) - require.NoError(t, err) - err = handler.HandleEvent(context.Background(), event) - require.NoError(t, err) - - subs, err := db.GetSubscriptionsForPost("parent-uri") - require.NoError(t, err) - - assert.Len(t, subs, 1) - assert.Equal(t, myDid, subs[0]) -} - -func TestHandlerReceivesReplyToASubscribedPost(t *testing.T) { - db, err := store.New(":memory:") - require.NoError(t, err) - - handler := handler{ - store: db, - } - - // add the subscription - err = db.AddSubscriptionForPost("parent-uri", myDid, "subscribe-post-rkey") - require.NoError(t, err) - - record := apibsky.FeedPost{ - Text: "this is a reply to a post that was subscribed to", - Reply: &apibsky.FeedPost_ReplyRef{ - Parent: &atproto.RepoStrongRef{ - Uri: "parent-uri", - }, - }, - } - - recordB, err := json.Marshal(record) - require.NoError(t, err) - - event := &models.Event{ - Did: myDid, - Commit: &models.Commit{ - Operation: models.CommitOperationCreate, - Collection: "app.bsky.feed.post", - RKey: "reply-post-rkey", - Record: recordB, - }, - } - - // send the event twice to simulate subscribing to the same post twice, to check only - // 1 subscription is created - err = handler.HandleEvent(context.Background(), event) - require.NoError(t, err) - err = handler.HandleEvent(context.Background(), event) - require.NoError(t, err) - - subs, err := db.GetSubscriptionsForPost("some-uri") - require.NoError(t, err) - - assert.Len(t, subs, 1) - assert.Equal(t, myDid, subs[0]) -} diff --git a/handler.go b/handler.go index 6cecdae..4d83aa4 100644 --- a/handler.go +++ b/handler.go @@ -82,7 +82,7 @@ func (h *handler) handleCreateEvent(_ context.Context, event *models.Event) erro slog.Info("post is a reply to a post that users are subscribed to", "subscribed post URI", subscribedPostURI, "dids", subscribedDids, "RKey", event.Commit.RKey) replyPostURI := fmt.Sprintf("at://%s/app.bsky.feed.post/%s", event.Did, event.Commit.RKey) - h.createFeedPostForSubscribedUsers(subscribedDids, subscribedPostURI, replyPostURI) + h.createFeedPostForSubscribedUsers(subscribedDids, replyPostURI, subscribedPostURI) return nil } diff --git a/store/feed.go b/store/feed.go index d056d5a..9e7d273 100644 --- a/store/feed.go +++ b/store/feed.go @@ -46,7 +46,7 @@ func (s *Store) AddFeedPost(feedPost FeedPost) error { } func (s *Store) GetUsersFeed(usersDID string) ([]FeedPost, error) { - sql := "SELECT id, replyURI, userDID FROM feed WHERE userDID = ?;" + sql := "SELECT id, replyURI, userDID, subscribedPostURI FROM feed WHERE userDID = ?;" rows, err := s.db.Query(sql, usersDID) if err != nil { return nil, fmt.Errorf("run query to get users feed posts: %w", err) @@ -56,7 +56,7 @@ func (s *Store) GetUsersFeed(usersDID string) ([]FeedPost, error) { feedPosts := make([]FeedPost, 0) for rows.Next() { var feedPost FeedPost - if err := rows.Scan(&feedPost.ID, &feedPost.ReplyURI, &feedPost.UserDID); err != nil { + if err := rows.Scan(&feedPost.ID, &feedPost.ReplyURI, &feedPost.UserDID, &feedPost.SubscribedPostURI); err != nil { return nil, fmt.Errorf("scan row: %w", err) } feedPosts = append(feedPosts, feedPost) -- 2.51.2