spec/models/widget/feed_spec.rb
require 'rails_helper'
describe Widget::Feed do
let(:feed) { build(:widget_feed) }
context "validations" do
it "is valid" do
expect(feed).to be_valid
end
end
context "kinds" do
describe "#proposals" do
it "returns the most active proposals" do
best_proposal = create(:proposal, title: 'Best proposal')
best_proposal.update_column(:hot_score, 10)
worst_proposal = create(:proposal, title: 'Worst proposal')
worst_proposal.update_column(:hot_score, 2)
even_worst_proposal = create(:proposal, title: 'Worst proposal')
even_worst_proposal.update_column(:hot_score, 1)
medium_proposal = create(:proposal, title: 'Medium proposal')
medium_proposal.update_column(:hot_score, 5)
feed = build(:widget_feed, kind: "proposals")
expect(feed.proposals).to eq([best_proposal, medium_proposal, worst_proposal])
end
end
describe "#debates" do
it "returns the most active debates" do
best_debate = create(:debate, title: 'Best debate')
best_debate.update_column(:hot_score, 10)
worst_debate = create(:debate, title: 'Worst debate')
worst_debate.update_column(:hot_score, 2)
even_worst_debate = create(:debate, title: 'Worst debate')
even_worst_debate.update_column(:hot_score, 1)
medium_debate = create(:debate, title: 'Medium debate')
medium_debate.update_column(:hot_score, 5)
feed = build(:widget_feed, kind: "debates")
expect(feed.debates).to eq([best_debate, medium_debate, worst_debate])
end
end
describe "#processes" do
it "returns open and published processes" do
open_process1 = create(:legislation_process, :open, :published, title: "Open process 1")
open_process2 = create(:legislation_process, :open, :published, title: "Open process 2")
open_process3 = create(:legislation_process, :open, :published, title: "Open process 3")
open_process4 = create(:legislation_process, :open, :published, title: "Open process 4")
open_process5 = create(:legislation_process, :open, :not_published, title: "Open process 5")
past_process = create(:legislation_process, :past, title: "Past process")
feed = build(:widget_feed, kind: "processes")
expect(feed.processes).to eq([open_process4, open_process3, open_process2])
end
end
end
end