Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorPatricio Cano <suprnova32@gmail.com>2016-08-09 20:43:47 +0300
committerPatricio Cano <suprnova32@gmail.com>2016-08-16 01:20:57 +0300
commit5994c11910822463faeabb7b5f11d6529036db9d (patch)
treea80a8ffea4d4ef868790aab627abfcaa1c982d10 /spec
parent43e756d4eafd79f4d2f366b646ebb94af78b5a4c (diff)
Further refactor and syntax fixes.
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/admin/spam_logs_controller_spec.rb2
-rw-r--r--spec/controllers/projects/issues_controller_spec.rb13
-rw-r--r--spec/factories/user_agent_details.rb7
-rw-r--r--spec/models/concerns/spammable_spec.rb14
-rw-r--r--spec/models/user_agent_detail_spec.rb22
-rw-r--r--spec/requests/api/issues_spec.rb2
6 files changed, 26 insertions, 34 deletions
diff --git a/spec/controllers/admin/spam_logs_controller_spec.rb b/spec/controllers/admin/spam_logs_controller_spec.rb
index ac0441d0a4e..585ca31389d 100644
--- a/spec/controllers/admin/spam_logs_controller_spec.rb
+++ b/spec/controllers/admin/spam_logs_controller_spec.rb
@@ -37,7 +37,7 @@ describe Admin::SpamLogsController do
describe '#mark_as_ham' do
before do
- allow_any_instance_of(AkismetService).to receive(:ham!).and_return(true)
+ allow_any_instance_of(AkismetService).to receive(:submit_ham).and_return(true)
end
it 'submits the log as ham' do
post :mark_as_ham, id: first_spam.id
diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb
index 0e8d4b80b0e..0836b71056c 100644
--- a/spec/controllers/projects/issues_controller_spec.rb
+++ b/spec/controllers/projects/issues_controller_spec.rb
@@ -274,7 +274,7 @@ describe Projects::IssuesController do
describe 'POST #create' do
context 'Akismet is enabled' do
before do
- allow_any_instance_of(Spammable).to receive(:check_for_spam?).and_return(true)
+ allow_any_instance_of(SpamService).to receive(:check_for_spam?).and_return(true)
allow_any_instance_of(AkismetService).to receive(:is_spam?).and_return(true)
end
@@ -317,7 +317,7 @@ describe Projects::IssuesController do
end
it 'creates a user agent detail' do
- expect{ post_new_issue }.to change(UserAgentDetail, :count)
+ expect{ post_new_issue }.to change(UserAgentDetail, :count).by(1)
end
end
end
@@ -325,9 +325,8 @@ describe Projects::IssuesController do
describe 'POST #mark_as_spam' do
context 'properly submits to Akismet' do
before do
- allow_any_instance_of(AkismetService).to receive_messages(spam!: true)
+ allow_any_instance_of(AkismetService).to receive_messages(submit_spam: true)
allow_any_instance_of(ApplicationSetting).to receive_messages(akismet_enabled: true)
- allow_any_instance_of(SpamService).to receive_messages(can_be_submitted?: true)
end
def post_spam
@@ -342,13 +341,9 @@ describe Projects::IssuesController do
}
end
- it 'creates a system note' do
- expect{ post_spam }.to change(Note, :count)
- end
-
it 'updates issue' do
post_spam
- expect(issue.submitted?).to be_truthy
+ expect(issue.submittable_as_spam?).to be_falsey
end
end
end
diff --git a/spec/factories/user_agent_details.rb b/spec/factories/user_agent_details.rb
index 10de5dcb329..9763cc0cf15 100644
--- a/spec/factories/user_agent_details.rb
+++ b/spec/factories/user_agent_details.rb
@@ -2,11 +2,6 @@ FactoryGirl.define do
factory :user_agent_detail do
ip_address '127.0.0.1'
user_agent 'AppleWebKit/537.36'
- subject_id 1
- subject_type 'Issue'
-
- trait :on_issue do
- association :subject, factory: :issue
- end
+ association :subject, factory: :issue
end
end
diff --git a/spec/models/concerns/spammable_spec.rb b/spec/models/concerns/spammable_spec.rb
index 7944305e7b3..32935bc0b09 100644
--- a/spec/models/concerns/spammable_spec.rb
+++ b/spec/models/concerns/spammable_spec.rb
@@ -9,29 +9,17 @@ describe Issue, 'Spammable' do
describe 'ClassMethods' do
it 'should return correct attr_spammable' do
- expect(issue.send(:spammable_text)).to eq("#{issue.title}\n#{issue.description}")
+ expect(issue.spammable_text).to eq("#{issue.title}\n#{issue.description}")
end
end
describe 'InstanceMethods' do
- it 'should return the correct creator' do
- expect(issue.owner_id).to eq(issue.author_id)
- end
-
it 'should be invalid if spam' do
issue = build(:issue, spam: true)
expect(issue.valid?).to be_falsey
end
- it 'should not be submitted' do
- create(:user_agent_detail, subject: issue)
- expect(issue.submitted?).to be_falsey
- end
-
describe '#check_for_spam?' do
- before do
- allow_any_instance_of(ApplicationSetting).to receive(:akismet_enabled).and_return(true)
- end
it 'returns true for public project' do
issue.project.update_attribute(:visibility_level, Gitlab::VisibilityLevel::PUBLIC)
expect(issue.check_for_spam?).to eq(true)
diff --git a/spec/models/user_agent_detail_spec.rb b/spec/models/user_agent_detail_spec.rb
index ba21161fc7f..a8c25766e73 100644
--- a/spec/models/user_agent_detail_spec.rb
+++ b/spec/models/user_agent_detail_spec.rb
@@ -2,16 +2,30 @@ require 'rails_helper'
describe UserAgentDetail, type: :model do
describe '.submittable?' do
- it 'should be submittable' do
- detail = create(:user_agent_detail, :on_issue)
+ it 'is submittable when not already submitted' do
+ detail = build(:user_agent_detail)
+
expect(detail.submittable?).to be_truthy
end
+
+ it 'is not submittable when already submitted' do
+ detail = build(:user_agent_detail, submitted: true)
+
+ expect(detail.submittable?).to be_falsey
+ end
end
describe '.valid?' do
- it 'should be valid with a subject' do
- detail = create(:user_agent_detail, :on_issue)
+ it 'is valid with a subject' do
+ detail = build(:user_agent_detail)
+
expect(detail).to be_valid
end
+
+ it 'is invalid without a subject' do
+ detail = build(:user_agent_detail, subject: nil)
+
+ expect(detail).not_to be_valid
+ end
end
end
diff --git a/spec/requests/api/issues_spec.rb b/spec/requests/api/issues_spec.rb
index 30b939c797c..a40e1a93b71 100644
--- a/spec/requests/api/issues_spec.rb
+++ b/spec/requests/api/issues_spec.rb
@@ -531,7 +531,7 @@ describe API::API, api: true do
describe 'POST /projects/:id/issues with spam filtering' do
before do
- allow_any_instance_of(Spammable).to receive(:check_for_spam?).and_return(true)
+ allow_any_instance_of(SpamService).to receive(:check_for_spam?).and_return(true)
allow_any_instance_of(AkismetService).to receive_messages(is_spam?: true)
end