Merge pull request #5758 from consuldemocracy/comment_author_class_tests

Remove instance_double usage in CommentsHelper tests
This commit is contained in:
Javi Martín
2024-11-06 15:56:56 +01:00
committed by GitHub
2 changed files with 19 additions and 24 deletions

View File

@@ -12,25 +12,26 @@ require "rails_helper"
# end # end
RSpec.describe CommentsHelper do RSpec.describe CommentsHelper do
describe "#user_level_class" do describe "#user_level_class" do
def comment_double(as_administrator: false, as_moderator: false, official: false) def comment_double(**attributes)
user = instance_double(User, official?: official, official_level: "Y") defaults = { as_administrator?: false, as_moderator?: false, user: double(official?: false) }
instance_double(Comment, as_administrator?: as_administrator, as_moderator?: as_moderator, user: user)
double(defaults.merge(attributes))
end end
it "returns is-admin for comment done as administrator" do it "returns is-admin for comment done as administrator" do
comment = comment_double(as_administrator: true) comment = comment_double(as_administrator?: true)
expect(helper.user_level_class(comment)).to eq("is-admin") expect(helper.user_level_class(comment)).to eq("is-admin")
end end
it "returns is-moderator for comment done as moderator" do it "returns is-moderator for comment done as moderator" do
comment = comment_double(as_moderator: true) comment = comment_double(as_moderator?: true)
expect(helper.user_level_class(comment)).to eq("is-moderator") expect(helper.user_level_class(comment)).to eq("is-moderator")
end end
it "returns level followed by official level if user is official" do it "returns level followed by official level if user is official" do
comment = comment_double(official: true) comment = comment_double(user: double(official?: true, official_level: "Y"))
expect(helper.user_level_class(comment)).to eq("level-Y") expect(helper.user_level_class(comment)).to eq("level-Y")
end end
@@ -45,14 +46,14 @@ RSpec.describe CommentsHelper do
describe "#comment_author_class" do describe "#comment_author_class" do
it "returns is-author if author is the commenting user" do it "returns is-author if author is the commenting user" do
author_id = 42 author_id = 42
comment = instance_double(Comment, user_id: author_id) comment = double(user_id: author_id)
expect(helper.comment_author_class(comment, author_id)).to eq("is-author") expect(helper.comment_author_class(comment, author_id)).to eq("is-author")
end end
it "returns an empty string if commenter is not the author" do it "returns an empty string if commenter is not the author" do
author_id = 42 author_id = 42
comment = instance_double(Comment, user_id: author_id - 1) comment = double(user_id: author_id - 1)
expect(helper.comment_author_class(comment, author_id)).to eq("") expect(helper.comment_author_class(comment, author_id)).to eq("")
end end

View File

@@ -75,49 +75,43 @@ describe Verification::Management::Document do
end end
describe "Allowed Age" do describe "Allowed Age" do
let(:min_age) { User.minimum_required_age } let(:min_age) { User.minimum_required_age }
let(:over_minium_age_date_of_birth) { Date.new((min_age + 10).years.ago.year, 12, 31) } let(:over_minimum_age_date_of_birth) { Date.new((min_age + 10).years.ago.year, 12, 31) }
let(:under_minium_age_date_of_birth) { Date.new(min_age.years.ago.year, 12, 31) } let(:under_minimum_age_date_of_birth) { Date.new(min_age.years.ago.year, 12, 31) }
let(:just_minium_age_date_of_birth) do let(:just_minimum_age_date_of_birth) do
Date.new(min_age.years.ago.year, min_age.years.ago.month, min_age.years.ago.day) Date.new(min_age.years.ago.year, min_age.years.ago.month, min_age.years.ago.day)
end end
describe "#valid_age?" do describe "#valid_age?" do
it "returns false when the user is younger than the user's minimum required age" do it "returns false when the user is younger than the user's minimum required age" do
census_response = instance_double(CensusApi::Response, census_response = double(date_of_birth: under_minimum_age_date_of_birth)
date_of_birth: under_minium_age_date_of_birth)
expect(Verification::Management::Document.new.valid_age?(census_response)).to be false expect(Verification::Management::Document.new.valid_age?(census_response)).to be false
end end
it "returns true when the user has the user's minimum required age" do it "returns true when the user has the user's minimum required age" do
census_response = instance_double(CensusApi::Response, census_response = double(date_of_birth: just_minimum_age_date_of_birth)
date_of_birth: just_minium_age_date_of_birth)
expect(Verification::Management::Document.new.valid_age?(census_response)).to be true expect(Verification::Management::Document.new.valid_age?(census_response)).to be true
end end
it "returns true when the user is older than the user's minimum required age" do it "returns true when the user is older than the user's minimum required age" do
census_response = instance_double(CensusApi::Response, census_response = double(date_of_birth: over_minimum_age_date_of_birth)
date_of_birth: over_minium_age_date_of_birth)
expect(Verification::Management::Document.new.valid_age?(census_response)).to be true expect(Verification::Management::Document.new.valid_age?(census_response)).to be true
end end
end end
describe "#under_age?" do describe "#under_age?" do
it "returns true when the user is younger than the user's minimum required age" do it "returns true when the user is younger than the user's minimum required age" do
census_response = instance_double(CensusApi::Response, census_response = double(date_of_birth: under_minimum_age_date_of_birth)
date_of_birth: under_minium_age_date_of_birth)
expect(Verification::Management::Document.new.under_age?(census_response)).to be true expect(Verification::Management::Document.new.under_age?(census_response)).to be true
end end
it "returns false when the user is user's minimum required age" do it "returns false when the user is user's minimum required age" do
census_response = instance_double(CensusApi::Response, census_response = double(date_of_birth: just_minimum_age_date_of_birth)
date_of_birth: just_minium_age_date_of_birth)
expect(Verification::Management::Document.new.under_age?(census_response)).to be false expect(Verification::Management::Document.new.under_age?(census_response)).to be false
end end
it "returns false when the user is older than user's minimum required age" do it "returns false when the user is older than user's minimum required age" do
census_response = instance_double(CensusApi::Response, census_response = double(date_of_birth: over_minimum_age_date_of_birth)
date_of_birth: over_minium_age_date_of_birth)
expect(Verification::Management::Document.new.under_age?(census_response)).to be false expect(Verification::Management::Document.new.under_age?(census_response)).to be false
end end
end end