discourse/spec/lib/feed_item_accessor_spec.rb
Jarek Radosz 45cc16098d
DEV: Move spec/components to spec/lib (#15987)
Lib specs were inexplicably split into two directories (`lib` and `components`)

This moves them all into `lib`.
2022-02-18 19:41:54 +01:00

48 lines
1.5 KiB
Ruby

# frozen_string_literal: true
require 'rss'
require 'feed_item_accessor'
require 'rails_helper'
describe FeedItemAccessor do
context 'for ATOM feed' do
let(:atom_feed) { RSS::Parser.parse(file_from_fixtures('feed.atom', 'feed'), false) }
let(:atom_feed_item) { atom_feed.items.first }
let(:item_accessor) { FeedItemAccessor.new(atom_feed_item) }
describe '#element_content' do
it { expect(item_accessor.element_content('title')).to eq(atom_feed_item.title.content) }
end
describe '#link' do
it { expect(item_accessor.link).to eq(atom_feed_item.link.href) }
end
end
context 'for RSS feed' do
let(:rss_feed) { RSS::Parser.parse(file_from_fixtures('feed.rss', 'feed'), false) }
let(:rss_feed_item) { rss_feed.items.first }
let(:item_accessor) { FeedItemAccessor.new(rss_feed_item) }
describe '#element_content' do
it { expect(item_accessor.element_content('title')).to eq(rss_feed_item.title) }
end
describe '#link' do
it { expect(item_accessor.link).to eq(rss_feed_item.link) }
end
end
context 'with multiple links' do
let(:rss_feed) { RSS::Parser.parse(file_from_fixtures('multiple-links.atom', 'feed'), false) }
let(:rss_feed_item) { rss_feed.items.first }
let(:item_accessor) { FeedItemAccessor.new(rss_feed_item) }
describe '#link' do
it 'gets the web page link' do
expect(item_accessor.link).to eq('http://workspaceupdates.googleblog.com/2022/01/improved-editing-experience-in-google.html')
end
end
end
end