Skip to content

Commit 0b8c651

Browse files
committed
refactor!: remove dead feed helper
1 parent 471df83 commit 0b8c651

2 files changed

Lines changed: 33 additions & 48 deletions

File tree

app/feeds.rb

Lines changed: 0 additions & 34 deletions
This file was deleted.

spec/html2rss/web/app_spec.rb

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,30 @@ def json_feed_error_tuple
1818
]
1919
end
2020

21-
def stub_legacy_feed(body)
22-
allow(Html2rss::Web::Feeds).to receive(:generate_feed).and_return(body)
23-
allow(Html2rss::Web::LocalConfig).to receive(:find).and_return({ channel: { ttl: 180 } })
21+
def static_feed_json
22+
'{"version":"https://jsonfeed.org/version/1.1"}'
23+
end
24+
25+
def stub_static_feed(rss_body: '<rss/>', json_body: static_feed_json, ttl: 180)
26+
allow(Html2rss::Web::LocalConfig).to receive(:find).and_return({ channel: { ttl: ttl } })
27+
28+
stub_static_renderers(static_feed_result(ttl:), rss_body:, json_body:)
29+
end
30+
31+
def static_feed_result(ttl:)
32+
Html2rss::Web::Feeds::Result.new(
33+
status: :ok,
34+
payload: nil,
35+
message: nil,
36+
ttl_seconds: Html2rss::Web::CacheTtl.seconds_from_minutes(ttl),
37+
cache_key: 'feed_result:spec'
38+
)
39+
end
40+
41+
def stub_static_renderers(result, rss_body:, json_body:)
42+
allow(Html2rss::Web::Feeds::Service).to receive(:call).and_return(result)
43+
allow(Html2rss::Web::Feeds::RssRenderer).to receive(:call).with(result).and_return(rss_body)
44+
allow(Html2rss::Web::Feeds::JsonRenderer).to receive(:call).with(result).and_return(json_body)
2445
end
2546

2647
it { expect(described_class).to be < Roda }
@@ -38,9 +59,8 @@ def app = described_class
3859
expect(last_response.headers['Strict-Transport-Security']).to include('max-age=31536000')
3960
end
4061

41-
it 'serves legacy feed routes with caching headers', :aggregate_failures do # rubocop:disable RSpec/ExampleLength
42-
allow(Html2rss::Web::Feeds).to receive(:generate_feed).and_return('<rss/>')
43-
allow(Html2rss::Web::LocalConfig).to receive(:find).and_return({ channel: { ttl: 180 } })
62+
it 'serves static feed routes with caching headers', :aggregate_failures do # rubocop:disable RSpec/ExampleLength
63+
stub_static_feed
4464

4565
get '/legacy'
4666

@@ -52,17 +72,17 @@ def app = described_class
5272
expect(last_response.body).to eq('<rss/>')
5373
end
5474

55-
it 'serves legacy json feed routes when json is requested by extension', :aggregate_failures do
56-
stub_legacy_feed('{"version":"https://jsonfeed.org/version/1.1"}')
75+
it 'serves static json feed routes when json is requested by extension', :aggregate_failures do
76+
stub_static_feed
5777
get '/legacy.json'
5878

5979
expect(json_feed_response_tuple).to eq(
6080
[200, 'application/feed+json', { 'version' => 'https://jsonfeed.org/version/1.1' }]
6181
)
6282
end
6383

64-
it 'serves HEAD requests for legacy feed routes with negotiated headers only', :aggregate_failures do # rubocop:disable RSpec/ExampleLength
65-
stub_legacy_feed('<rss/>')
84+
it 'serves HEAD requests for static feed routes with negotiated headers only', :aggregate_failures do # rubocop:disable RSpec/ExampleLength
85+
stub_static_feed
6686
head '/legacy'
6787

6888
expect(last_response.status).to eq(200)
@@ -72,16 +92,15 @@ def app = described_class
7292
end
7393

7494
it 'coerces string ttl values before cache expiry math', :aggregate_failures do
75-
allow(Html2rss::Web::Feeds).to receive(:generate_feed).and_return('<rss/>')
76-
allow(Html2rss::Web::LocalConfig).to receive(:find).and_return({ channel: { ttl: '180' } })
95+
stub_static_feed(ttl: '180')
7796

7897
get '/legacy'
7998

8099
expect(last_response.status).to eq(200)
81100
expect(last_response.headers['Cache-Control']).to include('max-age=10800')
82101
end
83102

84-
it 'renders XML error when legacy feed generation fails', :aggregate_failures do
103+
it 'renders XML error when static feed generation fails', :aggregate_failures do
85104
allow(Html2rss::Web::XmlBuilder).to receive(:build_error_feed).and_return('<error/>')
86105

87106
get '/missing-feed'
@@ -91,7 +110,7 @@ def app = described_class
91110
expect(last_response.body).to eq('<error/>')
92111
end
93112

94-
it 'renders JSON Feed-shaped errors when legacy json feed generation fails', :aggregate_failures do
113+
it 'renders JSON Feed-shaped errors when static json feed generation fails', :aggregate_failures do
95114
get '/missing-feed.json'
96115

97116
expect(json_feed_error_tuple).to eq(

0 commit comments

Comments
 (0)