From 6136dd5a751b22cf88609840a89a40ffbc0b9145 Mon Sep 17 00:00:00 2001
From: Porus Patell <ppatell@perforce.com>
Date: Fri, 15 Aug 2014 12:51:43 -0700
Subject: [PATCH] Adding Spinach tests for 'search issues by description field'
 feature

---
 features/project/issues/issues.feature | 30 ++++++++++++++++++++++
 features/steps/project/issues.rb       | 35 ++++++++++++++++++++++++++
 2 files changed, 65 insertions(+)

diff --git a/features/project/issues/issues.feature b/features/project/issues/issues.feature
index b2e6f1f9324..85c6ab4bc2a 100644
--- a/features/project/issues/issues.feature
+++ b/features/project/issues/issues.feature
@@ -63,6 +63,36 @@ Feature: Project Issues
     Then I should see "Release 0.3" in issues
     And I should not see "Release 0.4" in issues
 
+  @javascript
+  Scenario: Test to search project issues when the entered search string exactly matches an existing issue description
+    Given project "Shop" has issue "Bugfix1" with description: "Description for issue1"
+    And I fill in issue search with "Description for issue1"
+    Then I should see "Bugfix1" in issues
+    And I should not see "Release 0.4" in issues
+    And I should not see "Release 0.3" in issues
+    And I should not see "Tweet control" in issues
+
+  @javascript
+  Scenario: Test to search project issues when the entered search string partially matches an existing issue description
+    Given project "Shop" has issue "Bugfix1" with description: "Description for issue1"
+    And project "Shop" has issue "Feature1" with description: "Feature submitted for issue1"
+    And I fill in issue search with "issue1"
+    Then I should see "Feature1" in issues
+    Then I should see "Bugfix1" in issues
+    And I should not see "Release 0.4" in issues
+    And I should not see "Release 0.3" in issues
+    And I should not see "Tweet control" in issues
+
+  @javascript
+  Scenario: Test to search project when the entered search string matches no existing issue description
+    Given project "Shop" has issue "Bugfix1" with description: "Description for issue1"
+    And I fill in issue search with "Rock and roll"
+    Then I should not see "Bugfix1" in issues
+    And I should not see "Release 0.4" in issues
+    And I should not see "Release 0.3" in issues
+    And I should not see "Tweet control" in issues
+
+
   # Markdown
 
   Scenario: Headers inside the description should have ids generated for them.
diff --git a/features/steps/project/issues.rb b/features/steps/project/issues.rb
index 557ea2fdca8..be42bfcc024 100644
--- a/features/steps/project/issues.rb
+++ b/features/steps/project/issues.rb
@@ -187,4 +187,39 @@ class ProjectIssues < Spinach::FeatureSteps
   step 'The code block should be unchanged' do
     page.should have_content("```\nCommand [1]: /usr/local/bin/git , see [text](doc/text)\n```")
   end
+
+  step 'project "Shop" has issue "Bugfix1" with description: "Description for issue1"' do
+    project = Project.find_by(name: "Shop")
+    issue = create(:issue, title: "Bugfix1", description: "Description for issue1", project: project)
+  end
+
+  step 'project "Shop" has issue "Feature1" with description: "Feature submitted for issue1"' do
+    project = Project.find_by(name: "Shop")
+    issue = create(:issue, title: "Feature1", description: "Feature submitted for issue1", project: project)
+  end
+
+  step 'I fill in issue search with "Description for issue1"' do
+    fill_in 'issue_search', with: "Description for issue"
+  end
+
+  step 'I fill in issue search with "issue1"' do
+    fill_in 'issue_search', with: "issue1"
+  end
+
+  step 'I fill in issue search with "Rock and roll"' do
+    fill_in 'issue_search', with: "Description for issue"
+  end
+
+  step 'I should see "Bugfix1" in issues' do
+    page.should have_content "Bugfix1"
+  end
+
+  step 'I should see "Feature1" in issues' do
+    page.should have_content "Feature1"
+  end
+
+
+  step 'I should not see "Bugfix1" in issues' do
+    page.should_not have_content "Bugfix1"
+  end
 end
-- 
GitLab