From 92cbc1e4ad8d874428089c4c65293fa218f67206 Mon Sep 17 00:00:00 2001
From: Robert Speicher <rspeicher@gmail.com>
Date: Wed, 30 Nov 2016 15:13:42 +0800
Subject: [PATCH] Enable the `RSpec/ExpectActual` cop and correct offenses

---
 .rubocop.yml                                  |  4 ++
 .rubocop_todo.yml                             |  4 --
 .../filtered_search/filter_issues_spec.rb     | 33 +++------
 spec/lib/gitlab/regex_spec.rb                 | 71 ++++++++++---------
 4 files changed, 53 insertions(+), 59 deletions(-)

diff --git a/.rubocop.yml b/.rubocop.yml
index e73597adca2..21ea8372e4b 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -801,6 +801,10 @@ RSpec/ExampleWording:
     not: does not
   IgnoredWords: []
 
+# Checks for `expect(...)` calls containing literal values.
+RSpec/ExpectActual:
+  Enabled: true
+
 # Checks the file and folder naming of the spec file.
 RSpec/FilePath:
   Enabled: false
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index c86cd714723..4714b64b896 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -85,10 +85,6 @@ Performance/RedundantMerge:
 RSpec/EmptyExampleGroup:
   Enabled: false
 
-# Offense count: 24
-RSpec/ExpectActual:
-  Enabled: false
-
 # Offense count: 58
 # Configuration parameters: EnforcedStyle, SupportedStyles.
 # SupportedStyles: implicit, each, example
diff --git a/spec/features/issues/filtered_search/filter_issues_spec.rb b/spec/features/issues/filtered_search/filter_issues_spec.rb
index 6f7046c8461..64f448a83b7 100644
--- a/spec/features/issues/filtered_search/filter_issues_spec.rb
+++ b/spec/features/issues/filtered_search/filter_issues_spec.rb
@@ -113,13 +113,11 @@ describe 'Filter issues', js: true, feature: true do
       end
 
       it 'filters issues by invalid author' do
-        pending('to be tested, issue #26546')
-        expect(true).to be(false)
+        skip('to be tested, issue #26546')
       end
 
       it 'filters issues by multiple authors' do
-        pending('to be tested, issue #26546')
-        expect(true).to be(false)
+        skip('to be tested, issue #26546')
       end
     end
 
@@ -158,8 +156,7 @@ describe 'Filter issues', js: true, feature: true do
     end
 
     it 'sorting' do
-      pending('to be tested, issue #26546')
-      expect(true).to be(false)
+      skip('to be tested, issue #26546')
     end
   end
 
@@ -182,13 +179,11 @@ describe 'Filter issues', js: true, feature: true do
       end
 
       it 'filters issues by invalid assignee' do
-        pending('to be tested, issue #26546')
-        expect(true).to be(false)
+        skip('to be tested, issue #26546')
       end
 
       it 'filters issues by multiple assignees' do
-        pending('to be tested, issue #26546')
-        expect(true).to be(false)
+        skip('to be tested, issue #26546')
       end
     end
 
@@ -228,8 +223,7 @@ describe 'Filter issues', js: true, feature: true do
 
     context 'sorting' do
       it 'sorts' do
-        pending('to be tested, issue #26546')
-        expect(true).to be(false)
+        skip('to be tested, issue #26546')
       end
     end
   end
@@ -253,8 +247,7 @@ describe 'Filter issues', js: true, feature: true do
       end
 
       it 'filters issues by invalid label' do
-        pending('to be tested, issue #26546')
-        expect(true).to be(false)
+        skip('to be tested, issue #26546')
       end
 
       it 'filters issues by multiple labels' do
@@ -429,8 +422,7 @@ describe 'Filter issues', js: true, feature: true do
 
     context 'sorting' do
       it 'sorts' do
-        pending('to be tested, issue #26546')
-        expect(true).to be(false)
+        skip('to be tested, issue #26546')
       end
     end
   end
@@ -456,13 +448,11 @@ describe 'Filter issues', js: true, feature: true do
       end
 
       it 'filters issues by invalid milestones' do
-        pending('to be tested, issue #26546')
-        expect(true).to be(false)
+        skip('to be tested, issue #26546')
       end
 
       it 'filters issues by multiple milestones' do
-        pending('to be tested, issue #26546')
-        expect(true).to be(false)
+        skip('to be tested, issue #26546')
       end
 
       it 'filters issues by milestone containing special characters' do
@@ -523,8 +513,7 @@ describe 'Filter issues', js: true, feature: true do
 
     context 'sorting' do
       it 'sorts' do
-        pending('to be tested, issue #26546')
-        expect(true).to be(false)
+        skip('to be tested, issue #26546')
       end
     end
   end
diff --git a/spec/lib/gitlab/regex_spec.rb b/spec/lib/gitlab/regex_spec.rb
index c78cd30157e..1dbc2f6eb13 100644
--- a/spec/lib/gitlab/regex_spec.rb
+++ b/spec/lib/gitlab/regex_spec.rb
@@ -2,47 +2,52 @@
 require 'spec_helper'
 
 describe Gitlab::Regex, lib: true do
-  describe 'project path regex' do
-    it { expect('gitlab-ce').to match(Gitlab::Regex.project_path_regex) }
-    it { expect('gitlab_git').to match(Gitlab::Regex.project_path_regex) }
-    it { expect('_underscore.js').to match(Gitlab::Regex.project_path_regex) }
-    it { expect('100px.com').to match(Gitlab::Regex.project_path_regex) }
-    it { expect('?gitlab').not_to match(Gitlab::Regex.project_path_regex) }
-    it { expect('git lab').not_to match(Gitlab::Regex.project_path_regex) }
-    it { expect('gitlab.git').not_to match(Gitlab::Regex.project_path_regex) }
-  end
+  describe '.project_path_regex' do
+    subject { described_class.project_path_regex }
 
-  describe 'project name regex' do
-    it { expect('gitlab-ce').to match(Gitlab::Regex.project_name_regex) }
-    it { expect('GitLab CE').to match(Gitlab::Regex.project_name_regex) }
-    it { expect('100 lines').to match(Gitlab::Regex.project_name_regex) }
-    it { expect('gitlab.git').to match(Gitlab::Regex.project_name_regex) }
-    it { expect('Český název').to match(Gitlab::Regex.project_name_regex) }
-    it { expect('Dash – is this').to match(Gitlab::Regex.project_name_regex) }
-    it { expect('?gitlab').not_to match(Gitlab::Regex.project_name_regex) }
+    it { is_expected.to match('gitlab-ce') }
+    it { is_expected.to match('gitlab_git') }
+    it { is_expected.to match('_underscore.js') }
+    it { is_expected.to match('100px.com') }
+    it { is_expected.not_to match('?gitlab') }
+    it { is_expected.not_to match('git lab') }
+    it { is_expected.not_to match('gitlab.git') }
   end
 
-  describe 'file name regex' do
-    it { expect('foo@bar').to match(Gitlab::Regex.file_name_regex) }
+  describe '.project_name_regex' do
+    subject { described_class.project_name_regex }
+
+    it { is_expected.to match('gitlab-ce') }
+    it { is_expected.to match('GitLab CE') }
+    it { is_expected.to match('100 lines') }
+    it { is_expected.to match('gitlab.git') }
+    it { is_expected.to match('Český název') }
+    it { is_expected.to match('Dash – is this') }
+    it { is_expected.not_to match('?gitlab') }
   end
 
-  describe 'file path regex' do
-    it { expect('foo@/bar').to match(Gitlab::Regex.file_path_regex) }
+  describe '.file_name_regex' do
+    subject { described_class.file_name_regex }
+
+    it { is_expected.to match('foo@bar') }
   end
 
-  describe 'environment slug regex' do
-    def be_matched
-      match(Gitlab::Regex.environment_slug_regex)
-    end
+  describe '.file_path_regex' do
+    subject { described_class.file_path_regex }
+
+    it { is_expected.to match('foo@/bar') }
+  end
 
-    it { expect('foo').to be_matched }
-    it { expect('foo-1').to be_matched }
+  describe '.environment_slug_regex' do
+    subject { described_class.environment_slug_regex }
 
-    it { expect('FOO').not_to be_matched }
-    it { expect('foo/1').not_to be_matched }
-    it { expect('foo.1').not_to be_matched }
-    it { expect('foo*1').not_to be_matched }
-    it { expect('9foo').not_to be_matched }
-    it { expect('foo-').not_to be_matched }
+    it { is_expected.to match('foo') }
+    it { is_expected.to match('foo-1') }
+    it { is_expected.not_to match('FOO') }
+    it { is_expected.not_to match('foo/1') }
+    it { is_expected.not_to match('foo.1') }
+    it { is_expected.not_to match('foo*1') }
+    it { is_expected.not_to match('9foo') }
+    it { is_expected.not_to match('foo-') }
   end
 end
-- 
GitLab