diff options
author | Vinnie Okada <vokada@mrvinn.com> | 2014-10-16 23:10:50 -0500 |
---|---|---|
committer | Vinnie Okada <vokada@mrvinn.com> | 2014-10-18 17:58:34 -0500 |
commit | e1491465de441b386c72726f0b869104d1c15680 (patch) | |
tree | 9207fdd5957bda3d22946e268054f19ad8c1f093 | |
parent | cd3eabd71236d2be1430d2dbf23aad91d73aa783 (diff) | |
download | gitlab-ce-e1491465de441b386c72726f0b869104d1c15680.tar.gz |
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.
-rw-r--r-- | features/project/merge_requests.feature | 8 | ||||
-rw-r--r-- | features/steps/project/merge_requests.rb | 5 | ||||
-rw-r--r-- | features/steps/shared/diff_note.rb | 18 | ||||
-rw-r--r-- | features/steps/shared/issuable.rb | 15 | ||||
-rw-r--r-- | features/steps/shared/markdown.rb | 14 | ||||
-rw-r--r-- | features/steps/shared/note.rb | 12 | ||||
-rw-r--r-- | spec/features/notes_on_merge_requests_spec.rb | 24 |
7 files changed, 57 insertions, 39 deletions
diff --git a/features/project/merge_requests.feature b/features/project/merge_requests.feature index f1adf0bd34d..f8a43e1ee36 100644 --- a/features/project/merge_requests.feature +++ b/features/project/merge_requests.feature @@ -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 diff --git a/features/steps/project/merge_requests.rb b/features/steps/project/merge_requests.rb index 32bee9a563f..d5e060bdbe8 100644 --- a/features/steps/project/merge_requests.rb +++ b/features/steps/project/merge_requests.rb @@ -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 diff --git a/features/steps/shared/diff_note.rb b/features/steps/shared/diff_note.rb index bd22e95daee..8871b93edb6 100644 --- a/features/steps/shared/diff_note.rb +++ b/features/steps/shared/diff_note.rb @@ -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 diff --git a/features/steps/shared/issuable.rb b/features/steps/shared/issuable.rb new file mode 100644 index 00000000000..a0150e90380 --- /dev/null +++ b/features/steps/shared/issuable.rb @@ -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 diff --git a/features/steps/shared/markdown.rb b/features/steps/shared/markdown.rb index f3e61aa8e49..df4514b5646 100644 --- a/features/steps/shared/markdown.rb +++ b/features/steps/shared/markdown.rb @@ -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 diff --git a/features/steps/shared/note.rb b/features/steps/shared/note.rb index e298312f065..a83f74228af 100644 --- a/features/steps/shared/note.rb +++ b/features/steps/shared/note.rb @@ -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 diff --git a/spec/features/notes_on_merge_requests_spec.rb b/spec/features/notes_on_merge_requests_spec.rb index bf3c12012e5..36394265abf 100644 --- a/spec/features/notes_on_merge_requests_spec.rb +++ b/spec/features/notes_on_merge_requests_spec.rb @@ -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 |