Merge branch 'replace_spinach_star.feature' into 'master'
Replace 'project/star.feature' spinach test with an rspec analog See merge request !13855
This commit is contained in:
commit
499b640679
4 changed files with 43 additions and 76 deletions
5
changelogs/unreleased/replace_spinach_star-feature.yml
Normal file
5
changelogs/unreleased/replace_spinach_star-feature.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Replace 'project/star.feature' spinach test with an rspec analog
|
||||
merge_request: 13855
|
||||
author: Vitaliy @blackst0ne Klachkov
|
||||
type: other
|
|
@ -1,39 +0,0 @@
|
|||
@project-stars
|
||||
Feature: Project Star
|
||||
Scenario: New projects have 0 stars
|
||||
Given public project "Community"
|
||||
When I visit project "Community" page
|
||||
Then The project has no stars
|
||||
|
||||
Scenario: Empty projects show star count
|
||||
Given public empty project "Empty Public Project"
|
||||
When I visit empty project page
|
||||
Then The project has no stars
|
||||
|
||||
Scenario: Signed off users can't star projects
|
||||
Given public project "Community"
|
||||
And I visit project "Community" page
|
||||
When I click on the star toggle button
|
||||
Then I redirected to sign in page
|
||||
|
||||
@javascript
|
||||
Scenario: Signed in users can toggle star
|
||||
Given I sign in as "John Doe"
|
||||
And public project "Community"
|
||||
And I visit project "Community" page
|
||||
When I click on the star toggle button
|
||||
Then The project has 1 star
|
||||
When I click on the star toggle button
|
||||
Then The project has 0 stars
|
||||
|
||||
@javascript
|
||||
Scenario: Star count sums stars
|
||||
Given I sign in as "John Doe"
|
||||
And public project "Community"
|
||||
And I visit project "Community" page
|
||||
And I click on the star toggle button
|
||||
And I logout
|
||||
And I sign in as "Mary Jane"
|
||||
And I visit project "Community" page
|
||||
When I click on the star toggle button
|
||||
Then The project has 2 stars
|
|
@ -1,37 +0,0 @@
|
|||
class Spinach::Features::ProjectStar < Spinach::FeatureSteps
|
||||
include SharedAuthentication
|
||||
include SharedProject
|
||||
include SharedPaths
|
||||
include SharedUser
|
||||
|
||||
step "The project has no stars" do
|
||||
expect(page).not_to have_content '.toggle-star'
|
||||
end
|
||||
|
||||
step "The project has 0 stars" do
|
||||
has_n_stars(0)
|
||||
end
|
||||
|
||||
step "The project has 1 star" do
|
||||
has_n_stars(1)
|
||||
end
|
||||
|
||||
step "The project has 2 stars" do
|
||||
has_n_stars(2)
|
||||
end
|
||||
|
||||
# Requires @javascript
|
||||
step "I click on the star toggle button" do
|
||||
find(".star-btn", visible: true).click
|
||||
end
|
||||
|
||||
step 'I redirected to sign in page' do
|
||||
expect(current_path).to eq new_user_session_path
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def has_n_stars(n)
|
||||
expect(page).to have_css(".star-count", text: n, visible: true)
|
||||
end
|
||||
end
|
38
spec/features/projects/user_interacts_with_stars_spec.rb
Normal file
38
spec/features/projects/user_interacts_with_stars_spec.rb
Normal file
|
@ -0,0 +1,38 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'User interacts with project stars' do
|
||||
let(:project) { create(:project, :public, :repository) }
|
||||
|
||||
context 'when user is signed in', js: true do
|
||||
let(:user) { create(:user) }
|
||||
|
||||
before do
|
||||
sign_in(user)
|
||||
visit(project_path(project))
|
||||
end
|
||||
|
||||
it 'toggles the star' do
|
||||
find('.star-btn').click
|
||||
|
||||
expect(page).to have_css('.star-count', text: 1)
|
||||
|
||||
find('.star-btn').click
|
||||
|
||||
expect(page).to have_css('.star-count', text: 0)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when user is not signed in' do
|
||||
before do
|
||||
visit(project_path(project))
|
||||
end
|
||||
|
||||
it 'does not allow to star a project' do
|
||||
expect(page).not_to have_content('.toggle-star')
|
||||
|
||||
find('.star-btn').click
|
||||
|
||||
expect(current_path).to eq(new_user_session_path)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue