AI: address review on PR #461
このコミットが含まれているのは:
@@ -206,6 +206,25 @@ RSpec.describe 'Posts API', type: :request do
|
||||
end
|
||||
|
||||
context 'when q is provided' do
|
||||
['SPEC_TAG', 'SpEc_TaG', 'spec_tág', 'MANKO', 'MaNkO', 'mánko'].each do |name|
|
||||
it "matches #{ name } using database collation" do
|
||||
get '/posts', params: { locale: 'ja', tags: name }
|
||||
|
||||
expect(response).to have_http_status(:ok)
|
||||
expect(json.fetch('count')).to eq(2)
|
||||
expect(json.fetch('posts').map { _1.fetch('id') })
|
||||
.to contain_exactly(post_record.id, hit_post.id)
|
||||
end
|
||||
|
||||
it "excludes #{ name } using database collation" do
|
||||
get '/posts', params: { locale: 'ja', tags: "not:#{ name }" }
|
||||
|
||||
expect(response).to have_http_status(:ok)
|
||||
expect(json.fetch('count')).to eq(1)
|
||||
expect(json.fetch('posts').map { _1.fetch('id') }).to eq([miss_post.id])
|
||||
end
|
||||
end
|
||||
|
||||
it 'filters posts by q (hit case)' do
|
||||
get '/posts', params: { tags: 'spec_tag' }
|
||||
|
||||
@@ -266,6 +285,26 @@ RSpec.describe 'Posts API', type: :request do
|
||||
PostExternalTag.create!(post: miss_post, external_tag:)
|
||||
end
|
||||
|
||||
['NICO:SEARCH_EXTERNAL', 'NiCo:SeArCh_ExTeRnAl', 'nico:séarch_external'].each do |name|
|
||||
it "matches #{ name } using database collation" do
|
||||
get '/posts', params: { locale: 'ja', tags: name }
|
||||
|
||||
expect(response).to have_http_status(:ok)
|
||||
expect(json.fetch('count')).to eq(2)
|
||||
expect(json.fetch('posts').map { _1.fetch('id') })
|
||||
.to contain_exactly(miss_post.id, both_post.id)
|
||||
end
|
||||
|
||||
it "excludes #{ name } using database collation" do
|
||||
get '/posts', params: { locale: 'ja', tags: "not:#{ name }" }
|
||||
|
||||
expect(response).to have_http_status(:ok)
|
||||
expect(json.fetch('count')).to eq(2)
|
||||
expect(json.fetch('posts').map { _1.fetch('id') })
|
||||
.to contain_exactly(post_record.id, hit_post.id)
|
||||
end
|
||||
end
|
||||
|
||||
it 'keeps internal name searches independent of colliding external ids' do
|
||||
get '/posts', params: { tags: primary_tag_name_for(tag, 'ja').name }
|
||||
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする