Move 'Search Snippets' Spinach feature to Rspec
This commit moves the `search_snippets.feature` Spinach test to a Rspec feature, as part of deprecating the Spinach test suite. - Remove Spinach discover snippets feature and steps - Remove unused `SharedSearch` module - Add Rspec feature scenarios
This commit is contained in:
parent
f27f980383
commit
dbf5c8abfe
|
@ -1,20 +0,0 @@
|
|||
@dashboard
|
||||
Feature: Snippet Search
|
||||
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 a public many lined snippet
|
||||
|
||||
Scenario: I should see my public and private snippets
|
||||
When I search for "snippet" in snippet titles
|
||||
Then I should see "Personal snippet one" in results
|
||||
And I should see "Personal snippet private" in results
|
||||
|
||||
Scenario: I should see three surrounding lines on either side of a matching snippet line
|
||||
When I search for "line seven" in snippet contents
|
||||
Then I should see "line four" in results
|
||||
And I should see "line seven" in results
|
||||
And I should see "line ten" in results
|
||||
And I should not see "line three" in results
|
||||
And I should not see "line eleven" in results
|
|
@ -1,11 +0,0 @@
|
|||
module SharedSearch
|
||||
include Spinach::DSL
|
||||
|
||||
def search_snippet_contents(query)
|
||||
visit "/search?search=#{URI::encode(query)}&snippets=true&scope=snippet_blobs"
|
||||
end
|
||||
|
||||
def search_snippet_titles(query)
|
||||
visit "/search?search=#{URI::encode(query)}&snippets=true&scope=snippet_titles"
|
||||
end
|
||||
end
|
|
@ -1,55 +0,0 @@
|
|||
class Spinach::Features::SnippetSearch < Spinach::FeatureSteps
|
||||
include SharedAuthentication
|
||||
include SharedPaths
|
||||
include SharedSnippet
|
||||
include SharedUser
|
||||
include SharedSearch
|
||||
|
||||
step 'I search for "snippet" in snippet titles' do
|
||||
search_snippet_titles 'snippet'
|
||||
end
|
||||
|
||||
step 'I search for "snippet private" in snippet titles' do
|
||||
search_snippet_titles 'snippet private'
|
||||
end
|
||||
|
||||
step 'I search for "line seven" in snippet contents' do
|
||||
search_snippet_contents 'line seven'
|
||||
end
|
||||
|
||||
step 'I should see "line seven" in results' do
|
||||
expect(page).to have_content 'line seven'
|
||||
end
|
||||
|
||||
step 'I should see "line four" in results' do
|
||||
expect(page).to have_content 'line four'
|
||||
end
|
||||
|
||||
step 'I should see "line ten" in results' do
|
||||
expect(page).to have_content 'line ten'
|
||||
end
|
||||
|
||||
step 'I should not see "line eleven" in results' do
|
||||
expect(page).not_to have_content 'line eleven'
|
||||
end
|
||||
|
||||
step 'I should not see "line three" in results' do
|
||||
expect(page).not_to have_content 'line three'
|
||||
end
|
||||
|
||||
step 'I should see "Personal snippet one" in results' do
|
||||
expect(page).to have_content 'Personal snippet one'
|
||||
end
|
||||
|
||||
step 'I should see "Personal snippet private" in results' do
|
||||
expect(page).to have_content 'Personal snippet private'
|
||||
end
|
||||
|
||||
step 'I should not see "Personal snippet one" in results' do
|
||||
expect(page).not_to have_content 'Personal snippet one'
|
||||
end
|
||||
|
||||
step 'I should not see "Personal snippet private" in results' do
|
||||
expect(page).not_to have_content 'Personal snippet private'
|
||||
end
|
||||
end
|
|
@ -0,0 +1,66 @@
|
|||
require 'rails_helper'
|
||||
|
||||
feature 'Search Snippets', feature: true do
|
||||
scenario 'User searches for snippets by title' do
|
||||
public_snippet = create(:personal_snippet, :public, title: 'Beginning and Middle')
|
||||
private_snippet = create(:personal_snippet, :private, title: 'Middle and End')
|
||||
|
||||
login_as private_snippet.author
|
||||
visit dashboard_snippets_path
|
||||
|
||||
page.within '.search' do
|
||||
fill_in 'search', with: 'Middle'
|
||||
click_button 'Go'
|
||||
end
|
||||
|
||||
click_link 'Titles and Filenames'
|
||||
|
||||
expect(page).to have_link(public_snippet.title)
|
||||
expect(page).to have_link(private_snippet.title)
|
||||
end
|
||||
|
||||
scenario 'User searches for snippet contents' do
|
||||
create(:personal_snippet,
|
||||
:public,
|
||||
title: 'Many lined snippet',
|
||||
content: <<-CONTENT.strip_heredoc
|
||||
|line one
|
||||
|line two
|
||||
|line three
|
||||
|line four
|
||||
|line five
|
||||
|line six
|
||||
|line seven
|
||||
|line eight
|
||||
|line nine
|
||||
|line ten
|
||||
|line eleven
|
||||
|line twelve
|
||||
|line thirteen
|
||||
|line fourteen
|
||||
CONTENT
|
||||
)
|
||||
|
||||
login_as create(:user)
|
||||
visit dashboard_snippets_path
|
||||
|
||||
page.within '.search' do
|
||||
fill_in 'search', with: 'line seven'
|
||||
click_button 'Go'
|
||||
end
|
||||
|
||||
expect(page).to have_content('line seven')
|
||||
|
||||
# 3 lines before the matched line should be visible
|
||||
expect(page).to have_content('line six')
|
||||
expect(page).to have_content('line five')
|
||||
expect(page).to have_content('line four')
|
||||
expect(page).not_to have_content('line three')
|
||||
|
||||
# 3 lines after the matched line should be visible
|
||||
expect(page).to have_content('line eight')
|
||||
expect(page).to have_content('line nine')
|
||||
expect(page).to have_content('line ten')
|
||||
expect(page).not_to have_content('line eleven')
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue