Replace 'project/user_lookup.feature' spinach test with an rspec analog
This commit is contained in:
parent
ef8eb3f6f7
commit
96e0020c70
5 changed files with 49 additions and 65 deletions
|
@ -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
|
|
@ -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
|
|
@ -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
|
44
spec/features/projects/commits/user_browses_commits_spec.rb
Normal file
44
spec/features/projects/commits/user_browses_commits_spec.rb
Normal file
|
@ -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
|
Loading…
Reference in a new issue