DEV: Add debug lines for mystery no_user_selected error (#8759)

On some customer forums we are randomly getting a "You must select a valid user" error when sending a PM even when all parameters seem to be OK. This is an attempt to track it down with more data.
This commit is contained in:
Martin Brennan 2020-01-21 10:50:44 +10:00 committed by GitHub
parent aa04349cfd
commit c677f8ee6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 0 deletions

View File

@ -777,6 +777,10 @@ class PostsController < ApplicationController
result[:target_group_names] = groups.join(",")
end
if recipients.blank? || result[:target_usernames].blank?
Rails.logger.debug("Missing recipients for PM! result: #{result.inspect} | params: #{params.inspect}")
end
result.permit!
result.to_h
end

View File

@ -171,6 +171,8 @@ class TopicCreator
topic.subtype = TopicSubtype.user_to_user unless topic.subtype
unless @opts[:target_usernames].present? || @opts[:target_emails].present? || @opts[:target_group_names].present?
Rails.logger.debug("Topic PM cannot be created without recipients! opts: #{@opts.inspect}")
rollback_with!(topic, :no_user_selected)
end

View File

@ -1110,6 +1110,22 @@ describe PostsController do
expect(new_topic.allowed_users).to contain_exactly(user, user_2, user_3)
end
context "when target_recipients not provided" do
it "errors when creating a private post" do
post "/posts.json", params: {
raw: 'this is the test content',
archetype: 'private_message',
title: "this is some post",
target_recipients: ""
}
expect(response.status).to eq(422)
expect(JSON.parse(response.body)["errors"]).to include(
I18n.t("activerecord.errors.models.topic.attributes.base.no_user_selected")
)
end
end
context "errors" do
it "does not succeed" do
post "/posts.json", params: { raw: 'test' }