1
0
Fork 0

FIX: use request_store properly

Dieser Commit ist enthalten in:
Angus McLeod 2022-02-09 10:30:46 +11:00
Ursprung ba7e8d7cd2
Commit dd067768fd
3 geänderte Dateien mit 10 neuen und 3 gelöschten Zeilen

Datei anzeigen

@ -1,8 +1,9 @@
# frozen_string_literal: true # frozen_string_literal: true
require 'request_store'
module CustomWizardDiscourseTagging module CustomWizardDiscourseTagging
def filter_allowed_tags(guardian, opts = {}) def filter_allowed_tags(guardian, opts = {})
if tag_groups = RequestStore.store[:tag_groups] if tag_groups = ::RequestStore.store[:tag_groups]
tag_group_array = tag_groups.split(",") tag_group_array = tag_groups.split(",")
filtered_tags = TagGroup.includes(:tags).where(name: tag_group_array).map do |tag_group| filtered_tags = TagGroup.includes(:tags).where(name: tag_group_array).map do |tag_group|
tag_group.tags.pluck(:name) tag_group.tags.pluck(:name)

Datei anzeigen

@ -1,8 +1,9 @@
# frozen_string_literal: true # frozen_string_literal: true
require 'request_store'
module CustomWizardTagsController module CustomWizardTagsController
def search def search
RequestStore.store[:tag_groups] = params[:tag_groups] if params[:tag_groups].present? ::RequestStore.store[:tag_groups] = params[:tag_groups] if params[:tag_groups].present?
super super
end end
end end

Datei anzeigen

@ -12,9 +12,13 @@ describe ::TagsController, type: :request do
fab!(:tag_group_1) { Fabricate(:tag_group, tags: [tag_1, tag_2]) } fab!(:tag_group_1) { Fabricate(:tag_group, tags: [tag_1, tag_2]) }
fab!(:tag_group_2) { Fabricate(:tag_group, tags: [tag_3, tag_4]) } fab!(:tag_group_2) { Fabricate(:tag_group, tags: [tag_3, tag_4]) }
before do
::RequestStore.store[:tag_groups] = nil
end
describe "#search" do describe "#search" do
context "tag group param present" do context "tag group param present" do
it "returns tags only only in the tag group" do it "returns tags only in the tag group" do
get "/tags/filter/search.json", params: { q: '', tag_groups: [tag_group_1.name, tag_group_2.name] } get "/tags/filter/search.json", params: { q: '', tag_groups: [tag_group_1.name, tag_group_2.name] }
expect(response.status).to eq(200) expect(response.status).to eq(200)
results = response.parsed_body['results'] results = response.parsed_body['results']
@ -24,6 +28,7 @@ describe ::TagsController, type: :request do
.includes(:tags) .includes(:tags)
.where(id: [tag_group_1.id, tag_group_2.id]) .where(id: [tag_group_1.id, tag_group_2.id])
.map { |tag_group| tag_group.tags.pluck(:name) }.flatten .map { |tag_group| tag_group.tags.pluck(:name) }.flatten
expect(names).to contain_exactly(*expected_tag_names) expect(names).to contain_exactly(*expected_tag_names)
end end
end end