FEATURE: Introduce Ignore user (#7072)

This commit is contained in:
Tarek Khalil
2019-02-27 13:49:07 +00:00
committed by Régis Hanol
parent 5c476f639c
commit 986cc8a0fb
16 changed files with 233 additions and 25 deletions

View File

@ -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") }