Refactor Markdown preview tests
Create a new shared module for common issue/merge request behavior, use `expect` syntax instead of `should`, and avoid `visible: false` in the `have_css` matcher.
This commit is contained in:
parent
cd3eabd712
commit
e1491465de
7 changed files with 57 additions and 39 deletions
|
@ -193,21 +193,21 @@ Feature: Project Merge Requests
|
|||
@javascript
|
||||
Scenario: I can't preview without text
|
||||
Given I visit merge request page "Bug NS-04"
|
||||
And I click link "Edit"
|
||||
And I click link "Edit" for the merge request
|
||||
And I haven't written any description text
|
||||
Then I should not see the Markdown preview button
|
||||
|
||||
@javascript
|
||||
Scenario: I can preview with text
|
||||
Given I visit merge request page "Bug NS-04"
|
||||
And I click link "Edit"
|
||||
And I click link "Edit" for the merge request
|
||||
And I write a description like "Nice"
|
||||
Then I should see the Markdown preview button
|
||||
|
||||
@javascript
|
||||
Scenario: I preview a merge request description
|
||||
Given I visit merge request page "Bug NS-04"
|
||||
And I click link "Edit"
|
||||
And I click link "Edit" for the merge request
|
||||
And I preview a description text like "Bug fixed :smile:"
|
||||
Then I should see the Markdown preview
|
||||
And I should not see the Markdown text field
|
||||
|
@ -215,6 +215,6 @@ Feature: Project Merge Requests
|
|||
@javascript
|
||||
Scenario: I can edit after preview
|
||||
Given I visit merge request page "Bug NS-04"
|
||||
And I click link "Edit"
|
||||
And I click link "Edit" for the merge request
|
||||
And I preview a description text like "Bug fixed :smile:"
|
||||
Then I should see the Markdown edit button
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
|
||||
include SharedAuthentication
|
||||
include SharedIssuable
|
||||
include SharedProject
|
||||
include SharedNote
|
||||
include SharedPaths
|
||||
|
@ -10,10 +11,6 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
|
|||
click_link "New Merge Request"
|
||||
end
|
||||
|
||||
step 'I click link "Edit"' do
|
||||
click_link 'Edit'
|
||||
end
|
||||
|
||||
step 'I click link "Bug NS-04"' do
|
||||
click_link "Bug NS-04"
|
||||
end
|
||||
|
|
|
@ -32,7 +32,7 @@ module SharedDiffNote
|
|||
click_diff_line(sample_commit.line_code)
|
||||
within("#{diff_file_selector} form[rel$='#{sample_commit.line_code}']") do
|
||||
fill_in "note[note]", with: "Should fix it :smile:"
|
||||
find('.js-md-preview-button').trigger('click')
|
||||
find('.js-md-preview-button').click
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -41,7 +41,7 @@ module SharedDiffNote
|
|||
|
||||
within("#{diff_file_selector} form[rel$='#{sample_commit.del_line_code}']") do
|
||||
fill_in "note[note]", with: "DRY this up"
|
||||
find('.js-md-preview-button').trigger('click')
|
||||
find('.js-md-preview-button').click
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -73,7 +73,7 @@ module SharedDiffNote
|
|||
|
||||
step 'I should not see the diff comment preview button' do
|
||||
within(diff_file_selector) do
|
||||
page.should have_css('.js-md-preview-button', visible: false)
|
||||
expect(page).not_to have_css('.js-md-preview-button')
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -131,27 +131,27 @@ module SharedDiffNote
|
|||
|
||||
step 'I should see the diff comment preview' do
|
||||
within("#{diff_file_selector} form") do
|
||||
page.should have_css('.js-md-preview', visible: false)
|
||||
expect(page).to have_css('.js-md-preview')
|
||||
end
|
||||
end
|
||||
|
||||
step 'I should see the diff comment edit button' do
|
||||
within(diff_file_selector) do
|
||||
page.should have_css('.js-md-write-button', visible: true)
|
||||
expect(page).to have_css('.js-md-write-button')
|
||||
end
|
||||
end
|
||||
|
||||
step 'I should see the diff comment preview button' do
|
||||
within(diff_file_selector) do
|
||||
page.should have_css('.js-md-preview-button', visible: true)
|
||||
expect(page).to have_css('.js-md-preview-button')
|
||||
end
|
||||
end
|
||||
|
||||
step 'I should see two separate previews' do
|
||||
within(diff_file_selector) do
|
||||
page.should have_css('.js-md-preview', visible: true, count: 2)
|
||||
page.should have_content("Should fix it")
|
||||
page.should have_content("DRY this up")
|
||||
expect(page).to have_css('.js-md-preview', count: 2)
|
||||
expect(page).to have_content("Should fix it")
|
||||
expect(page).to have_content("DRY this up")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
15
features/steps/shared/issuable.rb
Normal file
15
features/steps/shared/issuable.rb
Normal file
|
@ -0,0 +1,15 @@
|
|||
module SharedIssuable
|
||||
include Spinach::DSL
|
||||
|
||||
def edit_issuable
|
||||
find('.issue-btn-group').click_link 'Edit'
|
||||
end
|
||||
|
||||
step 'I click link "Edit" for the merge request' do
|
||||
edit_issuable
|
||||
end
|
||||
|
||||
step 'I click link "Edit" for the issue' do
|
||||
edit_issuable
|
||||
end
|
||||
end
|
|
@ -56,27 +56,27 @@ EOT
|
|||
end
|
||||
|
||||
step 'I should not see the Markdown preview' do
|
||||
find('.gfm-form').should have_css('.js-md-preview', visible: false)
|
||||
expect(find('.gfm-form')).not_to have_css('.js-md-preview')
|
||||
end
|
||||
|
||||
step 'I should not see the Markdown preview button' do
|
||||
find('.gfm-form').should have_css('.js-md-preview-button', visible: false)
|
||||
expect(find('.gfm-form')).not_to have_css('.js-md-preview-button')
|
||||
end
|
||||
|
||||
step 'I should not see the Markdown text field' do
|
||||
find('.gfm-form').should have_css('textarea', visible: false)
|
||||
expect(find('.gfm-form')).not_to have_css('textarea')
|
||||
end
|
||||
|
||||
step 'I should see the Markdown edit button' do
|
||||
find('.gfm-form').should have_css('.js-md-write-button', visible: true)
|
||||
expect(find('.gfm-form')).to have_css('.js-md-write-button')
|
||||
end
|
||||
|
||||
step 'I should see the Markdown preview' do
|
||||
find('.gfm-form').should have_css('.js-md-preview', visible: true)
|
||||
expect(find('.gfm-form')).to have_css('.js-md-preview')
|
||||
end
|
||||
|
||||
step 'I should see the Markdown preview button' do
|
||||
find('.gfm-form').should have_css('.js-md-preview-button', visible: true)
|
||||
expect(find('.gfm-form')).to have_css('.js-md-preview-button')
|
||||
end
|
||||
|
||||
step 'I write a description like "Nice"' do
|
||||
|
@ -86,7 +86,7 @@ EOT
|
|||
step 'I preview a description text like "Bug fixed :smile:"' do
|
||||
within('.gfm-form') do
|
||||
fill_in 'Description', with: 'Bug fixed :smile:'
|
||||
find('.js-md-preview-button').trigger('click')
|
||||
find('.js-md-preview-button').click()
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ module SharedNote
|
|||
step 'I preview a comment text like "Bug fixed :smile:"' do
|
||||
within(".js-main-target-form") do
|
||||
fill_in "note[note]", with: "Bug fixed :smile:"
|
||||
find('.js-md-preview-button').trigger('click')
|
||||
find('.js-md-preview-button').click
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -51,13 +51,13 @@ module SharedNote
|
|||
|
||||
step 'I should not see the comment preview' do
|
||||
within(".js-main-target-form") do
|
||||
page.should have_css('.js-md-preview', visible: false)
|
||||
expect(page).not_to have_css('.js-md-preview')
|
||||
end
|
||||
end
|
||||
|
||||
step 'I should not see the comment preview button' do
|
||||
within(".js-main-target-form") do
|
||||
page.should have_css('.js-md-preview-button', visible: false)
|
||||
expect(page).not_to have_css('.js-md-preview-button')
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -81,19 +81,19 @@ module SharedNote
|
|||
|
||||
step 'I should see the comment edit button' do
|
||||
within(".js-main-target-form") do
|
||||
page.should have_css('.js-md-write-button', visible: true)
|
||||
expect(page).to have_css('.js-md-write-button')
|
||||
end
|
||||
end
|
||||
|
||||
step 'I should see the comment preview' do
|
||||
within(".js-main-target-form") do
|
||||
page.should have_css('.js-md-preview', visible: true)
|
||||
expect(page).to have_css('.js-md-preview')
|
||||
end
|
||||
end
|
||||
|
||||
step 'I should see the comment preview button' do
|
||||
within(".js-main-target-form") do
|
||||
page.should have_css('.js-md-preview-button', visible: true)
|
||||
expect(page).to have_css('.js-md-preview-button')
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -19,8 +19,10 @@ describe 'Comments' do
|
|||
it 'should be valid' do
|
||||
should have_css(".js-main-target-form", visible: true, count: 1)
|
||||
find(".js-main-target-form input[type=submit]").value.should == "Add Comment"
|
||||
within(".js-main-target-form") { should_not have_link("Cancel") }
|
||||
within('.js-main-target-form') { should have_css('.js-md-preview-button', visible: false) }
|
||||
within('.js-main-target-form') do
|
||||
expect(page).not_to have_link('Cancel')
|
||||
expect(page).not_to have_css('.js-md-preview-button', visible: true)
|
||||
end
|
||||
end
|
||||
|
||||
describe "with text" do
|
||||
|
@ -31,8 +33,10 @@ describe 'Comments' do
|
|||
end
|
||||
|
||||
it 'should have enable submit button and preview button' do
|
||||
within(".js-main-target-form") { should_not have_css(".js-comment-button[disabled]") }
|
||||
within('.js-main-target-form') { should have_css('.js-md-preview-button', visible: true) }
|
||||
within(".js-main-target-form") do
|
||||
expect(page).not_to have_css(".js-comment-button[disabled]")
|
||||
expect(page).to have_css('.js-md-preview-button')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -41,15 +45,17 @@ describe 'Comments' do
|
|||
before do
|
||||
within(".js-main-target-form") do
|
||||
fill_in "note[note]", with: "This is awsome!"
|
||||
find('.js-md-preview-button').trigger('click')
|
||||
find('.js-md-preview-button').click
|
||||
click_button "Add Comment"
|
||||
end
|
||||
end
|
||||
|
||||
it 'should be added and form reset' do
|
||||
should have_content("This is awsome!")
|
||||
within(".js-main-target-form") { should have_no_field("note[note]", with: "This is awesome!") }
|
||||
within('.js-main-target-form') { should have_css('.js-md-preview', visible: false) }
|
||||
within(".js-main-target-form") do
|
||||
expect(page).to have_no_field("note[note]", with: "This is awesome!")
|
||||
expect(page).not_to have_css('.js-md-preview', visible: true)
|
||||
end
|
||||
within(".js-main-target-form") { should have_css(".js-note-text", visible: true) }
|
||||
end
|
||||
end
|
||||
|
@ -172,11 +178,11 @@ describe 'Comments' do
|
|||
# add two separate texts and trigger previews on both
|
||||
within("tr[id='#{line_code}'] + .js-temp-notes-holder") do
|
||||
fill_in "note[note]", with: "One comment on line 7"
|
||||
find('.js-md-preview-button').trigger('click')
|
||||
find('.js-md-preview-button').click
|
||||
end
|
||||
within("tr[id='#{line_code_2}'] + .js-temp-notes-holder") do
|
||||
fill_in "note[note]", with: "Another comment on line 10"
|
||||
find('.js-md-preview-button').trigger('click')
|
||||
find('.js-md-preview-button').click
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue