* Softrun rubocop * Hardrun rubocop (-A) * Change a rubocop rule * Add missing cops * Undo & redo rubocop -A
132 lines
3.4 KiB
Ruby
132 lines
3.4 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe PinnedArticle do
|
|
let(:article) { create(:article) }
|
|
|
|
describe ".exists?" do
|
|
it "returns false if there is no pinned article" do
|
|
Settings::General.feed_pinned_article_id = nil
|
|
|
|
expect(described_class.exists?).to be(false)
|
|
end
|
|
|
|
it "returns false if the pinned article has been unpublished" do
|
|
Settings::General.feed_pinned_article_id = article.id
|
|
|
|
article.update_columns(published: false)
|
|
|
|
expect(described_class.exists?).to be(false)
|
|
end
|
|
|
|
it "returns false if the pinned article has been deleted" do
|
|
Settings::General.feed_pinned_article_id = article.id
|
|
|
|
article.destroy
|
|
|
|
expect(described_class.exists?).to be(false)
|
|
end
|
|
|
|
it "returns true if there is a pinned article" do
|
|
Settings::General.feed_pinned_article_id = article.id
|
|
|
|
expect(described_class.exists?).to be(true)
|
|
end
|
|
end
|
|
|
|
describe ".id" do
|
|
it "returns nil if there is no pinned article" do
|
|
Settings::General.feed_pinned_article_id = nil
|
|
|
|
expect(described_class.id).to be_nil
|
|
end
|
|
|
|
it "returns nil if the pinned article has been unpublished" do
|
|
Settings::General.feed_pinned_article_id = article.id
|
|
|
|
article.update_columns(published: false)
|
|
|
|
expect(described_class.id).to be_nil
|
|
end
|
|
|
|
it "returns nil if the pinned article has been deleted" do
|
|
Settings::General.feed_pinned_article_id = article.id
|
|
|
|
article.destroy
|
|
|
|
expect(described_class.id).to be_nil
|
|
end
|
|
|
|
it "returns the id of the pinned article" do
|
|
Settings::General.feed_pinned_article_id = article.id
|
|
|
|
expect(described_class.id).to eq(article.id)
|
|
end
|
|
end
|
|
|
|
describe ".get" do
|
|
it "returns nil if there is no pinned article" do
|
|
Settings::General.feed_pinned_article_id = nil
|
|
|
|
expect(described_class.get).to be_nil
|
|
end
|
|
|
|
it "returns nil if the pinned article has been unpublished" do
|
|
Settings::General.feed_pinned_article_id = article.id
|
|
|
|
article.update_columns(published: false)
|
|
|
|
expect(described_class.get).to be_nil
|
|
end
|
|
|
|
it "returns nil if the pinned article has been deleted" do
|
|
Settings::General.feed_pinned_article_id = article.id
|
|
|
|
article.destroy
|
|
|
|
expect(described_class.get).to be_nil
|
|
end
|
|
|
|
it "returns the pinned article" do
|
|
Settings::General.feed_pinned_article_id = article.id
|
|
|
|
expect(described_class.get.id).to eq(article.id)
|
|
end
|
|
end
|
|
|
|
describe ".set" do
|
|
it "sets the pinned article" do
|
|
expect(Settings::General.feed_pinned_article_id).to be_nil
|
|
|
|
described_class.set(article)
|
|
|
|
expect(Settings::General.feed_pinned_article_id).to eq(article.id)
|
|
end
|
|
|
|
it "overwrites the current pinned article" do
|
|
Settings::General.feed_pinned_article_id = article.id
|
|
|
|
another_article = create(:article)
|
|
described_class.set(another_article)
|
|
|
|
expect(Settings::General.feed_pinned_article_id).to eq(another_article.id)
|
|
end
|
|
end
|
|
|
|
describe ".remove" do
|
|
it "works even if there is no pinned article" do
|
|
Settings::General.feed_pinned_article_id = nil
|
|
|
|
described_class.remove
|
|
|
|
expect(Settings::General.feed_pinned_article_id).to be_nil
|
|
end
|
|
|
|
it "removes the currently pinned article" do
|
|
Settings::General.feed_pinned_article_id = article.id
|
|
|
|
described_class.remove
|
|
|
|
expect(Settings::General.feed_pinned_article_id).to be_nil
|
|
end
|
|
end
|
|
end
|