Move 'User Snippets' Spinach feature to Rspec
This commit moves the `snippets/user.feature` Spinach test to a Rspec feature, as part of deprecating the Spinach test suite. - Remove Spinach discover snippets feature and steps - Add Rspec feature test
This commit is contained in:
		
							parent
							
								
									bf8e174f0a
								
							
						
					
					
						commit
						256a55d47b
					
				| 
						 | 
					@ -1,34 +0,0 @@
 | 
				
			||||||
@snippets
 | 
					 | 
				
			||||||
Feature: Snippets User
 | 
					 | 
				
			||||||
  Background:
 | 
					 | 
				
			||||||
    Given I sign in as a user
 | 
					 | 
				
			||||||
    And I have public "Personal snippet one" snippet
 | 
					 | 
				
			||||||
    And I have private "Personal snippet private" snippet
 | 
					 | 
				
			||||||
    And I have internal "Personal snippet internal" snippet
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Scenario: I should see all my snippets
 | 
					 | 
				
			||||||
    Given I visit my snippets page
 | 
					 | 
				
			||||||
    Then I should see "Personal snippet one" in snippets
 | 
					 | 
				
			||||||
    And I should see "Personal snippet private" in snippets
 | 
					 | 
				
			||||||
    And I should see "Personal snippet internal" in snippets
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Scenario: I can see only my private snippets
 | 
					 | 
				
			||||||
    Given I visit my snippets page
 | 
					 | 
				
			||||||
    And I click "Private" filter
 | 
					 | 
				
			||||||
    Then I should not see "Personal snippet one" in snippets
 | 
					 | 
				
			||||||
    And I should not see "Personal snippet internal" in snippets
 | 
					 | 
				
			||||||
    And I should see "Personal snippet private" in snippets
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Scenario: I can see only my public snippets
 | 
					 | 
				
			||||||
    Given I visit my snippets page
 | 
					 | 
				
			||||||
    And I click "Public" filter
 | 
					 | 
				
			||||||
    Then I should see "Personal snippet one" in snippets
 | 
					 | 
				
			||||||
    And I should not see "Personal snippet private" in snippets
 | 
					 | 
				
			||||||
    And I should not see "Personal snippet internal" in snippets
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  Scenario: I can see only my internal snippets
 | 
					 | 
				
			||||||
    Given I visit my snippets page
 | 
					 | 
				
			||||||
    And I click "Internal" filter
 | 
					 | 
				
			||||||
    Then I should see "Personal snippet internal" in snippets
 | 
					 | 
				
			||||||
    And I should not see "Personal snippet private" in snippets
 | 
					 | 
				
			||||||
    And I should not see "Personal snippet one" in snippets
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,55 +0,0 @@
 | 
				
			||||||
class Spinach::Features::SnippetsUser < Spinach::FeatureSteps
 | 
					 | 
				
			||||||
  include SharedAuthentication
 | 
					 | 
				
			||||||
  include SharedPaths
 | 
					 | 
				
			||||||
  include SharedSnippet
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  step 'I visit my snippets page' do
 | 
					 | 
				
			||||||
    visit dashboard_snippets_path
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  step 'I should see "Personal snippet one" in snippets' do
 | 
					 | 
				
			||||||
    expect(page).to have_content "Personal snippet one"
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  step 'I should see "Personal snippet private" in snippets' do
 | 
					 | 
				
			||||||
    expect(page).to have_content "Personal snippet private"
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  step 'I should see "Personal snippet internal" in snippets' do
 | 
					 | 
				
			||||||
    expect(page).to have_content "Personal snippet internal"
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  step 'I should not see "Personal snippet one" in snippets' do
 | 
					 | 
				
			||||||
    expect(page).not_to have_content "Personal snippet one"
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  step 'I should not see "Personal snippet private" in snippets' do
 | 
					 | 
				
			||||||
    expect(page).not_to have_content "Personal snippet private"
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  step 'I should not see "Personal snippet internal" in snippets' do
 | 
					 | 
				
			||||||
    expect(page).not_to have_content "Personal snippet internal"
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  step 'I click "Internal" filter' do
 | 
					 | 
				
			||||||
    page.within('.snippet-scope-menu') do
 | 
					 | 
				
			||||||
      click_link "Internal"
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  step 'I click "Private" filter' do
 | 
					 | 
				
			||||||
    page.within('.snippet-scope-menu') do
 | 
					 | 
				
			||||||
      click_link "Private"
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  step 'I click "Public" filter' do
 | 
					 | 
				
			||||||
    page.within('.snippet-scope-menu') do
 | 
					 | 
				
			||||||
      click_link "Public"
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def snippet
 | 
					 | 
				
			||||||
    @snippet ||= PersonalSnippet.find_by!(title: "Personal snippet one")
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,49 @@
 | 
				
			||||||
 | 
					require 'rails_helper'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					feature 'User Snippets', feature: true do
 | 
				
			||||||
 | 
					  let(:author) { create(:user) }
 | 
				
			||||||
 | 
					  let!(:public_snippet) { create(:personal_snippet, :public, author: author, title: "This is a public snippet") }
 | 
				
			||||||
 | 
					  let!(:internal_snippet) { create(:personal_snippet, :internal, author: author, title: "This is an internal snippet") }
 | 
				
			||||||
 | 
					  let!(:private_snippet) { create(:personal_snippet, :private, author: author, title: "This is a private snippet") }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  background do
 | 
				
			||||||
 | 
					    login_as author
 | 
				
			||||||
 | 
					    visit dashboard_snippets_path
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  scenario 'View all of my snippets' do
 | 
				
			||||||
 | 
					    expect(page).to have_content(public_snippet.title)
 | 
				
			||||||
 | 
					    expect(page).to have_content(internal_snippet.title)
 | 
				
			||||||
 | 
					    expect(page).to have_content(private_snippet.title)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  scenario 'View my public snippets' do
 | 
				
			||||||
 | 
					    page.within('.snippet-scope-menu') do
 | 
				
			||||||
 | 
					      click_link "Public"
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    expect(page).to have_content(public_snippet.title)
 | 
				
			||||||
 | 
					    expect(page).not_to have_content(internal_snippet.title)
 | 
				
			||||||
 | 
					    expect(page).not_to have_content(private_snippet.title)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  scenario 'View my internal snippets' do
 | 
				
			||||||
 | 
					    page.within('.snippet-scope-menu') do
 | 
				
			||||||
 | 
					      click_link "Internal"
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    expect(page).not_to have_content(public_snippet.title)
 | 
				
			||||||
 | 
					    expect(page).to have_content(internal_snippet.title)
 | 
				
			||||||
 | 
					    expect(page).not_to have_content(private_snippet.title)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  scenario 'View my private snippets' do
 | 
				
			||||||
 | 
					    page.within('.snippet-scope-menu') do
 | 
				
			||||||
 | 
					      click_link "Private"
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    expect(page).not_to have_content(public_snippet.title)
 | 
				
			||||||
 | 
					    expect(page).not_to have_content(internal_snippet.title)
 | 
				
			||||||
 | 
					    expect(page).to have_content(private_snippet.title)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
		Loading…
	
		Reference in New Issue