From 96e0020c70ba69de873067b092626295d8388bf0 Mon Sep 17 00:00:00 2001
From: blackst0ne <blackst0ne.ru@gmail.com>
Date: Wed, 30 Aug 2017 09:31:26 +1100
Subject: [PATCH] Replace 'project/user_lookup.feature' spinach test with an
 rspec analog

---
 .../replace_spinach_user_lookup-feature.yml   |  5 ++
 features/project/commits/user_lookup.feature  | 16 ------
 features/steps/project/commits/user_lookup.rb | 49 -------------------
 .../projects/{commit => commits}/rss_spec.rb  |  0
 .../commits/user_browses_commits_spec.rb      | 44 +++++++++++++++++
 5 files changed, 49 insertions(+), 65 deletions(-)
 create mode 100644 changelogs/unreleased/replace_spinach_user_lookup-feature.yml
 delete mode 100644 features/project/commits/user_lookup.feature
 delete mode 100644 features/steps/project/commits/user_lookup.rb
 rename spec/features/projects/{commit => commits}/rss_spec.rb (100%)
 create mode 100644 spec/features/projects/commits/user_browses_commits_spec.rb

diff --git a/changelogs/unreleased/replace_spinach_user_lookup-feature.yml b/changelogs/unreleased/replace_spinach_user_lookup-feature.yml
new file mode 100644
index 0000000000000..36248c54d999f
--- /dev/null
+++ b/changelogs/unreleased/replace_spinach_user_lookup-feature.yml
@@ -0,0 +1,5 @@
+---
+title: Replace 'project/user_lookup.feature' spinach test with an rspec analog
+merge_request: 13863
+author: Vitaliy @blackst0ne Klachkov
+type: other
diff --git a/features/project/commits/user_lookup.feature b/features/project/commits/user_lookup.feature
deleted file mode 100644
index c18f4e070f3ec..0000000000000
--- a/features/project/commits/user_lookup.feature
+++ /dev/null
@@ -1,16 +0,0 @@
-@project_commits
-Feature: Project Commits User Lookup
-  Background:
-    Given I sign in as a user
-    And I own a project
-    And I visit my project's commits page
-
-  Scenario: I browse commit from list
-    Given I have user with primary email
-    When I click on commit link
-    Then I see author based on primary email
-
-  Scenario: I browse another commit from list
-    Given I have user with secondary email
-    When I click on another commit link
-    Then I see author based on secondary email
diff --git a/features/steps/project/commits/user_lookup.rb b/features/steps/project/commits/user_lookup.rb
deleted file mode 100644
index 4599e0d032a81..0000000000000
--- a/features/steps/project/commits/user_lookup.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-class Spinach::Features::ProjectCommitsUserLookup < Spinach::FeatureSteps
-  include SharedAuthentication
-  include SharedProject
-  include SharedPaths
-
-  step 'I click on commit link' do
-    visit project_commit_path(@project, sample_commit.id)
-  end
-
-  step 'I click on another commit link' do
-    visit project_commit_path(@project, sample_commit.parent_id)
-  end
-
-  step 'I have user with primary email' do
-    user_primary
-  end
-
-  step 'I have user with secondary email' do
-    user_secondary
-  end
-
-  step 'I see author based on primary email' do
-    check_author_link(sample_commit.author_email, user_primary)
-  end
-
-  step 'I see author based on secondary email' do
-    check_author_link(sample_commit.author_email, user_secondary)
-  end
-
-  def check_author_link(email, user)
-    author_link = find('.commit-author-link')
-
-    expect(author_link['href']).to eq user_path(user)
-    expect(author_link['title']).to eq email
-    expect(find('.commit-author-name').text).to eq user.name
-  end
-
-  def user_primary
-    @user_primary ||= create(:user, email: 'dmitriy.zaporozhets@gmail.com')
-  end
-
-  def user_secondary
-    @user_secondary ||= begin
-                          user = create(:user, email: 'dzaporozhets@example.com')
-                          create(:email, { user: user, email: 'dmitriy.zaporozhets@gmail.com' })
-                          user
-                        end
-  end
-end
diff --git a/spec/features/projects/commit/rss_spec.rb b/spec/features/projects/commits/rss_spec.rb
similarity index 100%
rename from spec/features/projects/commit/rss_spec.rb
rename to spec/features/projects/commits/rss_spec.rb
diff --git a/spec/features/projects/commits/user_browses_commits_spec.rb b/spec/features/projects/commits/user_browses_commits_spec.rb
new file mode 100644
index 0000000000000..41f3c15a94c55
--- /dev/null
+++ b/spec/features/projects/commits/user_browses_commits_spec.rb
@@ -0,0 +1,44 @@
+require 'spec_helper'
+
+describe 'User broweses commits' do
+  let(:user) { create(:user) }
+  let(:project) { create(:project, :repository, namespace: user.namespace) }
+
+  before do
+    project.add_master(user)
+    sign_in(user)
+  end
+
+  context 'primary email' do
+    it 'finds a commit by a primary email' do
+      user = create(:user, email: 'dmitriy.zaporozhets@gmail.com')
+
+      visit(project_commit_path(project, RepoHelpers.sample_commit.id))
+
+      check_author_link(RepoHelpers.sample_commit.author_email, user)
+    end
+  end
+
+  context 'secondary email' do
+    it 'finds a commit by a secondary email' do
+      user =
+        create(:user) do |user|
+          create(:email, { user: user, email: 'dmitriy.zaporozhets@gmail.com' })
+        end
+
+      visit(project_commit_path(project, RepoHelpers.sample_commit.parent_id))
+
+      check_author_link(RepoHelpers.sample_commit.author_email, user)
+    end
+  end
+end
+
+private
+
+def check_author_link(email, author)
+  author_link = find('.commit-author-link')
+
+  expect(author_link['href']).to eq(user_path(author))
+  expect(author_link['title']).to eq(email)
+  expect(find('.commit-author-name').text).to eq(author.name)
+end
-- 
GitLab