mirror of
https://github.com/discourse/discourse.git
synced 2025-05-31 05:18:00 +08:00
FEATURE: Introduce Ignore user (#7072)
This commit is contained in:

committed by
Régis Hanol

parent
5c476f639c
commit
986cc8a0fb
@ -2020,6 +2020,76 @@ describe UsersController do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#ignore' do
|
||||
it 'raises an error when not logged in' do
|
||||
put "/u/#{user.username}/ignore.json", params: { ignored_user_id: "" }
|
||||
expect(response.status).to eq(403)
|
||||
end
|
||||
|
||||
context 'while logged in' do
|
||||
let(:user) { Fabricate(:user) }
|
||||
let(:another_user) { Fabricate(:user) }
|
||||
before do
|
||||
sign_in(user)
|
||||
end
|
||||
|
||||
describe 'when SiteSetting.ignore_user_enabled is false' do
|
||||
it 'raises an error' do
|
||||
SiteSetting.ignore_user_enabled = false
|
||||
put "/u/#{user.username}/ignore.json"
|
||||
expect(response.status).to eq(404)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when SiteSetting.ignore_user_enabled is true' do
|
||||
it 'creates IgnoredUser record' do
|
||||
SiteSetting.ignore_user_enabled = true
|
||||
put "/u/#{user.username}/ignore.json", params: { ignored_user_id: another_user.id }
|
||||
expect(response.status).to eq(200)
|
||||
expect(IgnoredUser.find_by(user_id: user.id,
|
||||
ignored_user_id: another_user.id)).to be_present
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#watch' do
|
||||
it 'raises an error when not logged in' do
|
||||
delete "/u/#{user.username}/ignore.json"
|
||||
expect(response.status).to eq(403)
|
||||
end
|
||||
|
||||
context 'while logged in' do
|
||||
let(:user) { Fabricate(:user) }
|
||||
let(:another_user) { Fabricate(:user) }
|
||||
before do
|
||||
sign_in(user)
|
||||
end
|
||||
|
||||
describe 'when SiteSetting.ignore_user_enabled is false' do
|
||||
it 'raises an error' do
|
||||
SiteSetting.ignore_user_enabled = false
|
||||
delete "/u/#{user.username}/ignore.json", params: { ignored_user_id: another_user.id }
|
||||
expect(response.status).to eq(404)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when SiteSetting.ignore_user_enabled is true' do
|
||||
before do
|
||||
Fabricate(:ignored_user, user_id: user.id, ignored_user_id: another_user.id)
|
||||
end
|
||||
|
||||
it 'destroys IgnoredUser record' do
|
||||
SiteSetting.ignore_user_enabled = true
|
||||
delete "/u/#{user.username}/ignore.json", params: { ignored_user_id: another_user.id }
|
||||
expect(response.status).to eq(200)
|
||||
expect(IgnoredUser.find_by(user_id: user.id,
|
||||
ignored_user_id: another_user.id)).to be_blank
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "for user with period in username" do
|
||||
let(:user_with_period) { Fabricate(:user, username: "myname.test") }
|
||||
|
||||
|
Reference in New Issue
Block a user