Add tests for sending long questions with question worker

This commit is contained in:
Karina Kwiatek 2023-01-08 19:22:00 +01:00
parent cfba963b55
commit 4e78efcae7
2 changed files with 18 additions and 2 deletions

View File

@ -30,7 +30,7 @@ class QuestionWorker
return true if follower.banned? return true if follower.banned?
return true if muted?(follower, question) return true if muted?(follower, question)
return true if user.muting?(question.user) return true if user.muting?(question.user)
return true if question.long? && !user.profile.allow_long_questions return true if question.long? && !follower.profile.allow_long_questions
false false
end end

View File

@ -6,7 +6,8 @@ describe QuestionWorker do
describe "#perform" do describe "#perform" do
let(:user) { FactoryBot.create(:user) } let(:user) { FactoryBot.create(:user) }
let(:user_id) { user.id } let(:user_id) { user.id }
let(:question) { FactoryBot.create(:question, user:) } let(:content) { Faker::Lorem.sentence }
let(:question) { FactoryBot.create(:question, content:, user:) }
let(:question_id) { question.id } let(:question_id) { question.id }
before do before do
@ -92,5 +93,20 @@ describe QuestionWorker do
) )
end end
end end
context "long question" do
let(:content) { "x" * 1000 }
it "sends to recipients who allow long questions" do
user.followers.first.profile.update(allow_long_questions: true)
expect { subject }
.to(
change { Inbox.where(user_id: user.followers.ids, question_id:, new: true).count }
.from(0)
.to(1)
)
end
end
end end
end end