diff options
author | Rémy Coutable <remy@rymai.me> | 2015-09-29 18:08:55 +0200 |
---|---|---|
committer | rymai <remy@rymai.me> | 2015-09-29 21:47:01 +0200 |
commit | ea72d53ec083676ee1171e97c0869132f360d0c9 (patch) | |
tree | d512e83b668cf9223bab25c5f5dd6b715a82b204 /spec | |
parent | 5f95a5e070c76c582a2b394377b0f350f4b1cff9 (diff) | |
download | gitlab-ce-ea72d53ec083676ee1171e97c0869132f360d0c9.tar.gz |
Streamline the "Report button"rymai/gitlab-ce-disable-report-button-if-already-reported
This simplifies the "Report button" to not use open a dropdown and
adds a tooltip on this button.
This also removes an extra spec and adds missing specs.
Diffstat (limited to 'spec')
-rw-r--r-- | spec/features/users_spec.rb | 36 | ||||
-rw-r--r-- | spec/models/abuse_report_spec.rb | 12 | ||||
-rw-r--r-- | spec/models/user_spec.rb | 2 |
3 files changed, 14 insertions, 36 deletions
diff --git a/spec/features/users_spec.rb b/spec/features/users_spec.rb index 633616241f1..c1248162031 100644 --- a/spec/features/users_spec.rb +++ b/spec/features/users_spec.rb @@ -1,8 +1,7 @@ require 'spec_helper' feature 'Users', feature: true do - let(:user) { create(:user, username: 'user1', name: 'User 1', email: 'user1@gitlab.com') } - let(:user2) { create(:user, username: 'user2', name: 'User 2', email: 'user2@gitlab.com') } + let(:user) { create(:user, username: 'user1', name: 'User 1', email: 'user1@gitlab.com') } scenario 'GET /users/sign_in creates a new user account' do visit new_user_session_path @@ -49,37 +48,4 @@ feature 'Users', feature: true do page.find('#error_explanation').find('ul').all('li').count end - context 'With a logged-in user' do - before do - login_as(user) - end - - describe 'Abuse report button' do - context 'User has never been reported for abuse' do - it 'enables the "Report abuse" button / dropdown' do - visit user_path(user2) - - expect(page.find('#report_abuse').find('ul.dropdown-menu').all('li').count).to be(1) - expect(page.find('#report_abuse').all('.btn-close').count).to be(0) - end - end - - context 'User has already been reported for abuse' do - before do - @abuse_report = AbuseReport.new(user: user2, message: 'Foo bar') - @abuse_report.reporter = user - @abuse_report.save! - end - - it 'disables the "Report abuse" button' do - visit user_path(user2) - - expect(page.find('#report_abuse').all('ul.dropdown-menu').count).to be(0) - expect(page.find('#report_abuse').all('.btn-close').count).to be(1) - end - end - end - - end - end diff --git a/spec/models/abuse_report_spec.rb b/spec/models/abuse_report_spec.rb index 635a6e2518c..d45319b25d4 100644 --- a/spec/models/abuse_report_spec.rb +++ b/spec/models/abuse_report_spec.rb @@ -16,4 +16,16 @@ RSpec.describe AbuseReport, type: :model do subject { create(:abuse_report) } it { expect(subject).to be_valid } + + describe 'associations' do + it { is_expected.to belong_to(:reporter).class_name('User') } + it { is_expected.to belong_to(:user) } + end + + describe 'validations' do + it { is_expected.to validate_presence_of(:reporter) } + it { is_expected.to validate_presence_of(:user) } + it { is_expected.to validate_presence_of(:message) } + it { is_expected.to validate_uniqueness_of(:user_id) } + end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 6342c3b8d13..b7b525bfca2 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -73,7 +73,6 @@ describe User do describe 'associations' do it { is_expected.to have_one(:namespace) } - it { is_expected.to have_one(:abuse_report) } it { is_expected.to have_many(:snippets).class_name('Snippet').dependent(:destroy) } it { is_expected.to have_many(:project_members).dependent(:destroy) } it { is_expected.to have_many(:groups) } @@ -86,6 +85,7 @@ describe User do it { is_expected.to have_many(:merge_requests).dependent(:destroy) } it { is_expected.to have_many(:assigned_merge_requests).dependent(:destroy) } it { is_expected.to have_many(:identities).dependent(:destroy) } + it { is_expected.to have_one(:abuse_report) } end describe 'validations' do |