From e4b2479dc6fcec44394f6e8bca7612317c244cc9 Mon Sep 17 00:00:00 2001 From: Robert Fletcher Date: Sun, 14 Mar 2021 11:16:27 -0700 Subject: [PATCH] Specs: add more tests for StoryRepository --- spec/factories/stories.rb | 1 + spec/repositories/story_repository_spec.rb | 44 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/spec/factories/stories.rb b/spec/factories/stories.rb index 18aa9ca23..df8699c31 100644 --- a/spec/factories/stories.rb +++ b/spec/factories/stories.rb @@ -1,5 +1,6 @@ module Factories STORY_TRAITS = { + read: -> { { is_read: true } }, unread: -> { { is_read: false } } }.freeze diff --git a/spec/repositories/story_repository_spec.rb b/spec/repositories/story_repository_spec.rb index 3641e5162..f60a6e141 100644 --- a/spec/repositories/story_repository_spec.rb +++ b/spec/repositories/story_repository_spec.rb @@ -240,6 +240,50 @@ end end + describe ".feed" do + it "returns stories for the given feed id" do + feed = create_feed + story = create_story(feed: feed) + + expect(StoryRepository.feed(feed.id)).to eq([story]) + end + + it "sorts stories by published" do + feed = create_feed + story1 = create_story(feed: feed, published: 1.day.ago) + story2 = create_story(feed: feed, published: 1.hour.ago) + + expect(StoryRepository.feed(feed.id)).to eq([story2, story1]) + end + + it "does not return stories for other feeds" do + feed1 = create_feed + feed2 = create_feed + create_story(feed: feed2) + create_story + + expect(StoryRepository.feed(feed1.id)).to be_empty + end + end + + describe ".read_count" do + it "returns the count of read stories" do + create_story(:read) + create_story(:read) + create_story(:read) + + expect(StoryRepository.read_count).to eq(3) + end + + it "does not count unread stories" do + create_story(:unread) + create_story(:unread) + create_story(:unread) + + expect(StoryRepository.read_count).to eq(0) + end + end + describe ".extract_url" do it "returns the url" do feed = double(url: "http://github.com")