From e06f0ead9843df2688ca2f341a3b37d4d56a955d Mon Sep 17 00:00:00 2001
From: Vinnie Okada <vokada@mrvinn.com>
Date: Thu, 16 Oct 2014 23:36:52 -0500
Subject: [PATCH] Fix Markdown preview tests

Update Spinach tests for Markdown previews for the new-ish tab UI that
replaced the old preview/edit toggle button.
---
 features/project/commits/comments.feature     |  8 +++----
 .../project/commits/diff_comments.feature     |  6 ++---
 features/project/issues/issues.feature        |  8 +++----
 features/steps/shared/diff_note.rb            | 12 ++++++----
 features/steps/shared/markdown.rb             | 24 ++++++++++++-------
 features/steps/shared/note.rb                 | 22 +++++++++--------
 spec/features/notes_on_merge_requests_spec.rb |  1 -
 7 files changed, 45 insertions(+), 36 deletions(-)

diff --git a/features/project/commits/comments.feature b/features/project/commits/comments.feature
index e176752cfbf..a45245917e3 100644
--- a/features/project/commits/comments.feature
+++ b/features/project/commits/comments.feature
@@ -16,12 +16,12 @@ Feature: Project Commits Comments
   @javascript
   Scenario: I can't preview without text
     Given I haven't written any comment text
-    Then I should not see the comment preview button
+    Then The comment preview tab should say there is nothing to do
 
   @javascript
   Scenario: I can preview with text
-    Given I write a comment like "Nice"
-    Then I should see the comment preview button
+    Given I write a comment like ":+1: Nice"
+    Then The comment preview tab should be display rendered Markdown
 
   @javascript
   Scenario: I preview a comment
@@ -32,7 +32,7 @@ Feature: Project Commits Comments
   @javascript
   Scenario: I can edit after preview
     Given I preview a comment text like "Bug fixed :smile:"
-    Then I should see the comment edit button
+    Then I should see the comment write tab
 
   @javascript
   Scenario: I have a reset form after posting from preview
diff --git a/features/project/commits/diff_comments.feature b/features/project/commits/diff_comments.feature
index a145ec84b78..9c4cc723d1b 100644
--- a/features/project/commits/diff_comments.feature
+++ b/features/project/commits/diff_comments.feature
@@ -58,13 +58,13 @@ Feature: Project Commits Diff Comments
   Scenario: I can't preview without text
     Given I open a diff comment form
     And I haven't written any diff comment text
-    Then I should not see the diff comment preview button
+    Then The diff comment preview tab should say there is nothing to do
 
   @javascript
   Scenario: I can preview with text
     Given I open a diff comment form
     And I write a diff comment like ":-1: I don't like this"
-    Then I should see the diff comment preview button
+    Then The diff comment preview tab should display rendered Markdown
 
   @javascript
   Scenario: I preview a diff comment
@@ -75,7 +75,7 @@ Feature: Project Commits Diff Comments
   @javascript
   Scenario: I can edit after preview
     Given I preview a diff comment text like "Should fix it :smile:"
-    Then I should see the diff comment edit button
+    Then I should see the diff comment write tab
 
   @javascript
   Scenario: The form gets removed after posting
diff --git a/features/project/issues/issues.feature b/features/project/issues/issues.feature
index e7fbe2bd6f1..9970be0c596 100644
--- a/features/project/issues/issues.feature
+++ b/features/project/issues/issues.feature
@@ -166,13 +166,13 @@ Feature: Project Issues
   Scenario: I can't preview without text
     Given I click link "New Issue"
     And I haven't written any description text
-    Then I should not see the Markdown preview button
+    Then The Markdown preview tab should say there is nothing to do
 
   @javascript
   Scenario: I can preview with text
     Given I click link "New Issue"
-    And I write a description like "Nice"
-    Then I should see the Markdown preview button
+    And I write a description like ":+1: Nice"
+    Then The Markdown preview tab should display rendered Markdown
 
   @javascript
   Scenario: I preview an issue description
@@ -185,4 +185,4 @@ Feature: Project Issues
   Scenario: I can edit after preview
     Given I click link "New Issue"
     And I preview a description text like "Bug fixed :smile:"
-    Then I should see the Markdown edit button
+    Then I should see the Markdown write tab
diff --git a/features/steps/shared/diff_note.rb b/features/steps/shared/diff_note.rb
index 8871b93edb6..aa31a09e326 100644
--- a/features/steps/shared/diff_note.rb
+++ b/features/steps/shared/diff_note.rb
@@ -71,9 +71,10 @@ module SharedDiffNote
     end
   end
 
-  step 'I should not see the diff comment preview button' do
+  step 'The diff comment preview tab should say there is nothing to do' do
     within(diff_file_selector) do
-      expect(page).not_to have_css('.js-md-preview-button')
+      find('.js-md-preview-button').click
+      expect(find('.js-md-preview')).to have_content('Nothing to preview.')
     end
   end
 
@@ -135,15 +136,16 @@ module SharedDiffNote
     end
   end
 
-  step 'I should see the diff comment edit button' do
+  step 'I should see the diff comment write tab' do
     within(diff_file_selector) do
       expect(page).to have_css('.js-md-write-button')
     end
   end
 
-  step 'I should see the diff comment preview button' do
+  step 'The diff comment preview tab should display rendered Markdown' do
     within(diff_file_selector) do
-      expect(page).to have_css('.js-md-preview-button')
+      find('.js-md-preview-button').click
+      expect(find('.js-md-preview')).to have_css('img.emoji')
     end
   end
 
diff --git a/features/steps/shared/markdown.rb b/features/steps/shared/markdown.rb
index df4514b5646..10da67a6ba8 100644
--- a/features/steps/shared/markdown.rb
+++ b/features/steps/shared/markdown.rb
@@ -56,18 +56,21 @@ EOT
   end
 
   step 'I should not see the Markdown preview' do
-    expect(find('.gfm-form')).not_to have_css('.js-md-preview')
+    expect(find('.gfm-form')).not_to have_css('.js-md-preview', visible: true)
   end
 
-  step 'I should not see the Markdown preview button' do
-    expect(find('.gfm-form')).not_to have_css('.js-md-preview-button')
+  step 'The Markdown preview tab should say there is nothing to do' do
+    within(".gfm-form") do
+      find('.js-md-preview-button').click
+      expect(find('.js-md-preview')).to have_content('Nothing to preview.')
+    end
   end
 
   step 'I should not see the Markdown text field' do
-    expect(find('.gfm-form')).not_to have_css('textarea')
+    expect(find('.gfm-form')).not_to have_css('textarea', visible: true)
   end
 
-  step 'I should see the Markdown edit button' do
+  step 'I should see the Markdown write tab' do
     expect(find('.gfm-form')).to have_css('.js-md-write-button')
   end
 
@@ -75,12 +78,15 @@ EOT
     expect(find('.gfm-form')).to have_css('.js-md-preview')
   end
 
-  step 'I should see the Markdown preview button' do
-    expect(find('.gfm-form')).to have_css('.js-md-preview-button')
+  step 'The Markdown preview tab should display rendered Markdown' do
+    within(".gfm-form") do
+      find('.js-md-preview-button').click
+      expect(find('.js-md-preview')).to have_css('img.emoji')
+    end
   end
 
-  step 'I write a description like "Nice"' do
-    find('.gfm-form').fill_in 'Description', with: 'Nice'
+  step 'I write a description like ":+1: Nice"' do
+    find('.gfm-form').fill_in 'Description', with: ':+1: Nice'
   end
 
   step 'I preview a description text like "Bug fixed :smile:"' do
diff --git a/features/steps/shared/note.rb b/features/steps/shared/note.rb
index a83f74228af..9802614ec72 100644
--- a/features/steps/shared/note.rb
+++ b/features/steps/shared/note.rb
@@ -33,9 +33,9 @@ module SharedNote
     end
   end
 
-  step 'I write a comment like "Nice"' do
+  step 'I write a comment like ":+1: Nice"' do
     within(".js-main-target-form") do
-      fill_in "note[note]", with: "Nice"
+      fill_in "note[note]", with: ":+1: Nice"
     end
   end
 
@@ -51,13 +51,14 @@ module SharedNote
 
   step 'I should not see the comment preview' do
     within(".js-main-target-form") do
-      expect(page).not_to have_css('.js-md-preview')
+      expect(page).not_to have_css('.js-md-preview', visible: true)
     end
   end
 
-  step 'I should not see the comment preview button' do
+  step 'The comment preview tab should say there is nothing to do' do
     within(".js-main-target-form") do
-      expect(page).not_to have_css('.js-md-preview-button')
+      find('.js-md-preview-button').click
+      expect(find('.js-md-preview')).to have_content('Nothing to preview.')
     end
   end
 
@@ -79,21 +80,22 @@ module SharedNote
     end
   end
 
-  step 'I should see the comment edit button' do
+  step 'I should see the comment write tab' do
     within(".js-main-target-form") do
       expect(page).to have_css('.js-md-write-button')
     end
   end
 
-  step 'I should see the comment preview' do
+  step 'The comment preview tab should be display rendered Markdown' do
     within(".js-main-target-form") do
-      expect(page).to have_css('.js-md-preview')
+      find('.js-md-preview-button').click
+      expect(find('.js-md-preview')).to have_css('img.emoji')
     end
   end
 
-  step 'I should see the comment preview button' do
+  step 'I should see the comment preview' do
     within(".js-main-target-form") do
-      expect(page).to have_css('.js-md-preview-button')
+      expect(page).to have_css('.js-md-preview')
     end
   end
 
diff --git a/spec/features/notes_on_merge_requests_spec.rb b/spec/features/notes_on_merge_requests_spec.rb
index 36394265abf..3a99a260498 100644
--- a/spec/features/notes_on_merge_requests_spec.rb
+++ b/spec/features/notes_on_merge_requests_spec.rb
@@ -21,7 +21,6 @@ describe 'Comments' do
         find(".js-main-target-form input[type=submit]").value.should == "Add Comment"
         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
 
-- 
GitLab