Skip to content

Commit d13773c

Browse files
committed
Refactor spec doubles for Html2rss feeds
1 parent 34ead2c commit d13773c

2 files changed

Lines changed: 22 additions & 7 deletions

File tree

spec/html2rss/web/api/v1_spec.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ def app = Html2rss::Web::App.freeze.app
6464
end
6565

6666
describe 'GET /api/v1/feeds/:token' do
67+
before do
68+
stub_const('Html2rss::FeedChannel', Class.new { attr_reader :ttl })
69+
stub_const('Html2rss::Feed', Class.new { attr_reader :channel })
70+
end
71+
6772
it 'returns unauthorized when account not found', :aggregate_failures do # rubocop:disable RSpec/ExampleLength
6873
ghost_token = Html2rss::Web::FeedToken
6974
.create_with_validation(
@@ -87,7 +92,9 @@ def app = Html2rss::Web::App.freeze.app
8792
token = Html2rss::Web::Auth.generate_feed_token('admin', feed_url, strategy: 'ssrf_filter')
8893

8994
allow(Html2rss::Web::AutoSource).to receive(:generate_feed_object)
90-
.and_return(instance_double('Html2rss::Feed', channel: instance_double('Html2rss::FeedChannel', ttl: 10)))
95+
.and_return(
96+
instance_double(Html2rss::Feed, channel: instance_double(Html2rss::FeedChannel, ttl: 10))
97+
)
9198
allow(Html2rss::Web::FeedGenerator).to receive(:process_feed_content)
9299
.and_return('<rss version="2.0"></rss>')
93100

spec/html2rss/web/app_integration_spec.rb

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,27 @@
3535

3636
before do
3737
allow(Html2rss::Web::LocalConfig).to receive(:yaml).and_return(accounts_config)
38-
token_payload = instance_double(Html2rss::Web::FeedToken, url: feed_url, username: account[:username],
39-
strategy: 'ssrf_filter')
38+
stub_const('Html2rss::FeedChannel', Class.new { attr_reader :ttl })
39+
stub_const('Html2rss::Feed', Class.new { attr_reader :channel })
40+
token_payload = instance_double(
41+
Html2rss::Web::FeedToken,
42+
url: feed_url,
43+
username: account[:username],
44+
strategy: 'ssrf_filter'
45+
)
4046
allow(Html2rss::Web::FeedToken).to receive_messages(
4147
decode: token_payload,
4248
validate_and_decode: token_payload
4349
)
4450
allow(Html2rss::Web::AccountManager).to receive(:get_account_by_username).and_return(account)
4551
allow(Html2rss::Web::UrlValidator).to receive(:url_allowed?).and_return(true)
46-
feed_channel = instance_double('Html2rss::FeedChannel', ttl: 10)
47-
feed_object = instance_double('Html2rss::Feed', channel: feed_channel)
52+
feed_channel = instance_double(Html2rss::FeedChannel, ttl: 10)
53+
feed_object = instance_double(Html2rss::Feed, channel: feed_channel)
4854

49-
allow(Html2rss::Web::AutoSource).to receive(:enabled?).and_return(true)
50-
allow(Html2rss::Web::AutoSource).to receive(:generate_feed_object).and_return(feed_object)
55+
allow(Html2rss::Web::AutoSource).to receive_messages(
56+
enabled?: true,
57+
generate_feed_object: feed_object
58+
)
5159
allow(Html2rss::Web::FeedGenerator).to receive(:process_feed_content)
5260
.and_return('<rss version="2.0"></rss>')
5361
end

0 commit comments

Comments
 (0)