Add Spinach tests for task lists
This commit is contained in:
parent
3a3b2eb33e
commit
31bc42de57
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue