* Makes the ModeratorsQuery not return an exception on invalid role The current implementation of the query would yield an exception when recieving an invalid state parameter. As per the [GH issue discussion](https://github.com/forem/forem/issues/10060#issuecomment-692295217), Zhao recommended to change its behaviour and not trigger an exception in this condition. This commit does just that. If the state argument is invalid, the query now returns an empty result set. * Adds a warning when there are no matching mods * Re-trigger the build
44 lines
1.3 KiB
Ruby
44 lines
1.3 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe Admin::ModeratorsQuery, type: :query do
|
|
subject { described_class.call(options: options) }
|
|
|
|
let!(:user) { create(:user, :trusted, name: "Greg") }
|
|
let(:user2) { create(:user, :trusted, name: "Gregory") }
|
|
let!(:user3) { create(:user, :tag_moderator, name: "Paul", comments_count: 4) }
|
|
let!(:user4) { create(:user, :admin, name: "Susi", comments_count: 10) }
|
|
let(:user5) { create(:user, :trusted, :admin, name: "Beth") }
|
|
let(:user6) { create(:user, :admin, name: "Jean", comments_count: 5) }
|
|
|
|
describe ".call" do
|
|
context "when no arguments are given" do
|
|
it "returns all moderators" do
|
|
expect(described_class.call).to match_array([user, user2, user5])
|
|
end
|
|
end
|
|
|
|
context "when search is set" do
|
|
let(:options) { { search: "greg" } }
|
|
|
|
it { is_expected.to match_array([user, user2]) }
|
|
end
|
|
|
|
context "when state is tag_moderator" do
|
|
let(:options) { { state: "tag_moderator" } }
|
|
|
|
it { is_expected.to match_array([user3]) }
|
|
end
|
|
|
|
context "when state is potential" do
|
|
let(:options) { { state: "potential" } }
|
|
|
|
it { is_expected.to match_array([user4, user6, user3]) }
|
|
end
|
|
|
|
context "when state does not exist" do
|
|
let(:options) { { state: "non_existent_role" } }
|
|
|
|
it { is_expected.to match_array([]) }
|
|
end
|
|
end
|
|
end
|