summaryrefslogtreecommitdiff
path: root/features
diff options
context:
space:
mode:
authorVinnie Okada <vokada@mrvinn.com>2014-10-06 01:59:03 -0500
committerVinnie Okada <vokada@mrvinn.com>2014-10-06 02:07:03 -0500
commit31bc42de57b3cfd7bf068df06d15372307b8661b (patch)
treeab39133233b504da60674a61c3b25a1a80b0a753 /features
parent3a3b2eb33e2ca41153a960b89ae7796b43aa93e8 (diff)
downloadgitlab-ce-31bc42de57b3cfd7bf068df06d15372307b8661b.tar.gz
Add Spinach tests for task lists
Diffstat (limited to 'features')
-rw-r--r--features/project/issues/issues.feature33
-rw-r--r--features/project/merge_requests.feature33
-rw-r--r--features/steps/project/issues/issues.rb26
-rw-r--r--features/steps/project/merge_requests.rb14
-rw-r--r--features/steps/shared/markdown.rb30
-rw-r--r--features/steps/shared/note.rb14
-rw-r--r--features/steps/shared/paths.rb20
7 files changed, 170 insertions, 0 deletions
diff --git a/features/project/issues/issues.feature b/features/project/issues/issues.feature
index ae6a03ce865..e989569ccd4 100644
--- a/features/project/issues/issues.feature
+++ b/features/project/issues/issues.feature
@@ -126,3 +126,36 @@ Feature: Project Issues
When I click label 'bug'
And I should see "Release 0.4" in issues
And I should not see "Tweet control" in issues
+
+ Scenario: Issue description should render task checkboxes
+ Given project "Shop" has "Tasks-open" open issue with task markdown
+ When I visit issue page "Tasks-open"
+ Then I should see task checkboxes in the description
+
+ @javascript
+ Scenario: Issue notes should not render task checkboxes
+ Given project "Shop" has "Tasks-open" open issue with task markdown
+ When I visit issue page "Tasks-open"
+ And I leave a comment with task markdown
+ Then I should not see task checkboxes in the comment
+
+ # Task status in issues list
+
+ Scenario: Issues list should display task status
+ Given project "Shop" has "Tasks-open" open issue with task markdown
+ When I visit project "Shop" issues page
+ Then I should see the task status for issue "Tasks-open"
+
+ # Toggling task items
+
+ @javascript
+ Scenario: Task checkboxes should be enabled for an open issue
+ Given project "Shop" has "Tasks-open" open issue with task markdown
+ When I visit issue page "Tasks-open"
+ Then Task checkboxes should be enabled
+
+ @javascript
+ Scenario: Task checkboxes should be disabled for a closed issue
+ Given project "Shop" has "Tasks-closed" closed issue with task markdown
+ When I visit issue page "Tasks-closed"
+ Then Task checkboxes should be disabled
diff --git a/features/project/merge_requests.feature b/features/project/merge_requests.feature
index f8dccc15c0e..bad83191371 100644
--- a/features/project/merge_requests.feature
+++ b/features/project/merge_requests.feature
@@ -96,6 +96,16 @@ Feature: Project Merge Requests
And I leave a comment with a header containing "Comment with a header"
Then The comment with the header should not have an ID
+ Scenario: Merge request description should render task checkboxes
+ Given project "Shop" has "MR-task-open" open MR with task markdown
+ When I visit merge request page "MR-task-open"
+ Then I should see task checkboxes in the description
+
+ Scenario: Merge request notes should not render task checkboxes
+ Given project "Shop" has "MR-task-open" open MR with task markdown
+ When I visit merge request page "MR-task-open"
+ Then I should not see task checkboxes in the comment
+
# Toggling inline comments
@javascript
@@ -157,3 +167,26 @@ Feature: Project Merge Requests
And I leave a comment like "Line is wrong" on line 39 of the second file
And I click Side-by-side Diff tab
Then I should see comments on the side-by-side diff page
+
+ # Task status in issues list
+
+ @now
+ Scenario: Merge requests list should display task status
+ Given project "Shop" has "MR-task-open" open MR with task markdown
+ When I visit project "Shop" merge requests page
+ Then I should see the task status for merge request "MR-task-open"
+
+ # Toggling task items
+
+ @javascript
+ Scenario: Task checkboxes should be enabled for an open merge request
+ Given project "Shop" has "MR-task-open" open MR with task markdown
+ When I visit merge request page "MR-task-open"
+ Then Task checkboxes should be enabled
+
+ @javascript
+ Scenario: Task checkboxes should be disabled for a closed merge request
+ Given project "Shop" has "MR-task-open" open MR with task markdown
+ And I visit merge request page "MR-task-open"
+ And I click link "Close"
+ Then Task checkboxes should be disabled
diff --git a/features/steps/project/issues/issues.rb b/features/steps/project/issues/issues.rb
index b55b3c6c8a2..26c3c7c14bc 100644
--- a/features/steps/project/issues/issues.rb
+++ b/features/steps/project/issues/issues.rb
@@ -153,6 +153,32 @@ class Spinach::Features::ProjectIssues < Spinach::FeatureSteps
author: project.users.first)
end
+ step 'project "Shop" has "Tasks-open" open issue with task markdown' do
+ desc_text = <<EOT.gsub(/^ {6}/, '')
+ * [ ] Task 1
+ * [x] Task 2
+EOT
+ create(:issue,
+ title: 'Tasks-open',
+ project: project,
+ author: project.users.first,
+ description: desc_text
+ )
+ end
+
+ step 'project "Shop" has "Tasks-closed" closed issue with task markdown' do
+ desc_text = <<EOT.gsub(/^ {6}/, '')
+ * [ ] Task 1
+ * [x] Task 2
+EOT
+ create(:closed_issue,
+ title: 'Tasks-closed',
+ project: project,
+ author: project.users.first,
+ description: desc_text
+ )
+ end
+
step 'empty project "Empty Project"' do
create :empty_project, name: 'Empty Project', namespace: @user.namespace
end
diff --git a/features/steps/project/merge_requests.rb b/features/steps/project/merge_requests.rb
index c101c696253..3e19616c166 100644
--- a/features/steps/project/merge_requests.rb
+++ b/features/steps/project/merge_requests.rb
@@ -97,6 +97,20 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
author: project.users.first)
end
+ step 'project "Shop" has "MR-task-open" open MR with task markdown' do
+ desc_text = <<EOT.gsub(/^ {6}/, '')
+ * [ ] Task 1
+ * [x] Task 2
+EOT
+ create(:merge_request,
+ title: 'MR-task-open',
+ source_project: project,
+ target_project: project,
+ author: project.users.first,
+ description: desc_text
+ )
+ end
+
step 'I switch to the diff tab' do
visit diffs_project_merge_request_path(project, merge_request)
end
diff --git a/features/steps/shared/markdown.rb b/features/steps/shared/markdown.rb
index 092f2fceb57..1d9058cf256 100644
--- a/features/steps/shared/markdown.rb
+++ b/features/steps/shared/markdown.rb
@@ -9,4 +9,34 @@ module SharedMarkdown
step 'Header "Description header" should have correct id and link' do
header_should_have_correct_id_and_link(1, 'Description header', 'description-header')
end
+
+ step 'I should see task checkboxes in the description' do
+ expect(page).to have_selector(
+ 'div.description li.task-list-item input[type="checkbox"]'
+ )
+ end
+
+ step 'I should see the task status for issue "Tasks-open"' do
+ expect(find(:css, 'span.task-status').text).to eq(
+ '2 tasks (1 done, 1 unfinished)'
+ )
+ end
+
+ step 'I should see the task status for merge request "MR-task-open"' do
+ expect(find(:css, 'span.task-status').text).to eq(
+ '2 tasks (1 done, 1 unfinished)'
+ )
+ end
+
+ step 'Task checkboxes should be enabled' do
+ expect(page).to have_selector(
+ 'div.description li.task-list-item input[type="checkbox"]:enabled'
+ )
+ end
+
+ step 'Task checkboxes should be disabled' do
+ expect(page).to have_selector(
+ 'div.description li.task-list-item input[type="checkbox"]:disabled'
+ )
+ end
end
diff --git a/features/steps/shared/note.rb b/features/steps/shared/note.rb
index 4019fe3697a..2b2cb47a715 100644
--- a/features/steps/shared/note.rb
+++ b/features/steps/shared/note.rb
@@ -119,4 +119,18 @@ module SharedNote
page.should_not have_css("#comment-with-a-header")
end
end
+
+ step 'I leave a comment with task markdown' do
+ within('.js-main-target-form') do
+ fill_in 'note[note]', with: '* [x] Task item'
+ click_button 'Add Comment'
+ sleep 0.05
+ end
+ end
+
+ step 'I should not see task checkboxes in the comment' do
+ expect(page).not_to have_selector(
+ 'li.note div.timeline-content input[type="checkbox"]'
+ )
+ end
end
diff --git a/features/steps/shared/paths.rb b/features/steps/shared/paths.rb
index 141ff13b67d..1f238f8befd 100644
--- a/features/steps/shared/paths.rb
+++ b/features/steps/shared/paths.rb
@@ -292,6 +292,16 @@ module SharedPaths
visit project_issue_path(issue.project, issue)
end
+ step 'I visit issue page "Tasks-open"' do
+ issue = Issue.find_by(title: 'Tasks-open')
+ visit project_issue_path(issue.project, issue)
+ end
+
+ step 'I visit issue page "Tasks-closed"' do
+ issue = Issue.find_by(title: 'Tasks-closed')
+ visit project_issue_path(issue.project, issue)
+ end
+
step 'I visit project "Shop" labels page' do
project = Project.find_by(name: 'Shop')
visit project_labels_path(project)
@@ -322,6 +332,16 @@ module SharedPaths
visit project_merge_request_path(mr.target_project, mr)
end
+ step 'I visit merge request page "MR-task-open"' do
+ mr = MergeRequest.find_by(title: 'MR-task-open')
+ visit project_merge_request_path(mr.target_project, mr)
+ end
+
+ step 'I visit merge request page "MR-task-closed"' do
+ mr = MergeRequest.find_by(title: 'MR-task-closed')
+ visit project_merge_request_path(mr.target_project, mr)
+ end
+
step 'I visit project "Shop" merge requests page' do
visit project_merge_requests_path(project)
end