Commit 40263a06 authored by Vinnie Okada's avatar Vinnie Okada

Refactor task list tests and coffeescript

parent 31bc42de
window.updateTaskState = (taskableType) ->
objType = taskableType.data
isChecked = $(this).prop("checked")
if $(this).is(":checked")
stateEvent = "task_check"
else
stateEvent = "task_uncheck"
taskableUrl = $("form.edit-" + objType).first().attr("action")
taskableNum = taskableUrl.match(/\d+$/)
taskNum = 0
$("li.task-list-item input:checkbox").each( (index, e) =>
if e == this
taskNum = index + 1
)
$.ajax
type: "PATCH"
url: taskableUrl
data: objType + "[state_event]=" + stateEvent +
"&" + objType + "[task_num]=" + taskNum
...@@ -9,25 +9,11 @@ class Issue ...@@ -9,25 +9,11 @@ class Issue
if $("a.btn-close").length if $("a.btn-close").length
$("li.task-list-item input:checkbox").prop("disabled", false) $("li.task-list-item input:checkbox").prop("disabled", false)
$(".task-list-item input:checkbox").on "click", -> $(".task-list-item input:checkbox").on(
is_checked = $(this).prop("checked") "click"
if $(this).is(":checked") null
state_event = "task_check" "issue"
else updateTaskState
state_event = "task_uncheck" )
mr_url = $("form.edit-issue").first().attr("action")
mr_num = mr_url.match(/\d+$/)
task_num = 0
$("li.task-list-item input:checkbox").each( (index, e) =>
if e == this
task_num = index + 1
)
$.ajax
type: "PATCH"
url: mr_url
data: "issue[state_event]=" + state_event +
"&issue[task_num]=" + task_num
@Issue = Issue @Issue = Issue
...@@ -17,7 +17,7 @@ class MergeRequest ...@@ -17,7 +17,7 @@ class MergeRequest
disableButtonIfEmptyField '#commit_message', '.accept_merge_request' disableButtonIfEmptyField '#commit_message', '.accept_merge_request'
if $("a.close-mr-link").length if $("a.btn-close").length
$("li.task-list-item input:checkbox").prop("disabled", false) $("li.task-list-item input:checkbox").prop("disabled", false)
# Local jQuery finder # Local jQuery finder
...@@ -74,26 +74,12 @@ class MergeRequest ...@@ -74,26 +74,12 @@ class MergeRequest
this.$('.remove_source_branch_in_progress').hide() this.$('.remove_source_branch_in_progress').hide()
this.$('.remove_source_branch_widget.failed').show() this.$('.remove_source_branch_widget.failed').show()
this.$(".task-list-item input:checkbox").on "click", -> $(".task-list-item input:checkbox").on(
is_checked = $(this).prop("checked") "click"
if $(this).is(":checked") null
state_event = "task_check" "merge_request"
else updateTaskState
state_event = "task_uncheck" )
mr_url = $("form.edit-merge_request").first().attr("action")
mr_num = mr_url.match(/\d+$/)
task_num = 0
$("li.task-list-item input:checkbox").each( (index, e) =>
if e == this
task_num = index + 1
)
$.ajax
type: "PATCH"
url: mr_url
data: "merge_request[state_event]=" + state_event +
"&merge_request[task_num]=" + task_num
activateTab: (action) -> activateTab: (action) ->
this.$('.merge-request-tabs li').removeClass 'active' this.$('.merge-request-tabs li').removeClass 'active'
......
...@@ -144,7 +144,7 @@ Feature: Project Issues ...@@ -144,7 +144,7 @@ Feature: Project Issues
Scenario: Issues list should display task status Scenario: Issues list should display task status
Given project "Shop" has "Tasks-open" open issue with task markdown Given project "Shop" has "Tasks-open" open issue with task markdown
When I visit project "Shop" issues page When I visit project "Shop" issues page
Then I should see the task status for issue "Tasks-open" Then I should see the task status for the Taskable
# Toggling task items # Toggling task items
......
...@@ -170,11 +170,10 @@ Feature: Project Merge Requests ...@@ -170,11 +170,10 @@ Feature: Project Merge Requests
# Task status in issues list # Task status in issues list
@now
Scenario: Merge requests list should display task status Scenario: Merge requests list should display task status
Given project "Shop" has "MR-task-open" open MR with task markdown Given project "Shop" has "MR-task-open" open MR with task markdown
When I visit project "Shop" merge requests page When I visit project "Shop" merge requests page
Then I should see the task status for merge request "MR-task-open" Then I should see the task status for the Taskable
# Toggling task items # Toggling task items
......
...@@ -154,29 +154,11 @@ class Spinach::Features::ProjectIssues < Spinach::FeatureSteps ...@@ -154,29 +154,11 @@ class Spinach::Features::ProjectIssues < Spinach::FeatureSteps
end end
step 'project "Shop" has "Tasks-open" open issue with task markdown' do step 'project "Shop" has "Tasks-open" open issue with task markdown' do
desc_text = <<EOT.gsub(/^ {6}/, '') create_taskable(:issue, 'Tasks-open')
* [ ] Task 1
* [x] Task 2
EOT
create(:issue,
title: 'Tasks-open',
project: project,
author: project.users.first,
description: desc_text
)
end end
step 'project "Shop" has "Tasks-closed" closed issue with task markdown' do step 'project "Shop" has "Tasks-closed" closed issue with task markdown' do
desc_text = <<EOT.gsub(/^ {6}/, '') create_taskable(:closed_issue, 'Tasks-closed')
* [ ] Task 1
* [x] Task 2
EOT
create(:closed_issue,
title: 'Tasks-closed',
project: project,
author: project.users.first,
description: desc_text
)
end end
step 'empty project "Empty Project"' do step 'empty project "Empty Project"' do
......
...@@ -98,17 +98,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps ...@@ -98,17 +98,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
end end
step 'project "Shop" has "MR-task-open" open MR with task markdown' do step 'project "Shop" has "MR-task-open" open MR with task markdown' do
desc_text = <<EOT.gsub(/^ {6}/, '') create_taskable(:merge_request, 'MR-task-open')
* [ ] 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 end
step 'I switch to the diff tab' do step 'I switch to the diff tab' do
......
...@@ -6,6 +6,27 @@ module SharedMarkdown ...@@ -6,6 +6,27 @@ module SharedMarkdown
find(:css, "#{parent} h#{level}##{id} > :last-child")[:href].should =~ /##{id}$/ find(:css, "#{parent} h#{level}##{id} > :last-child")[:href].should =~ /##{id}$/
end end
def create_taskable(type, title)
desc_text = <<EOT.gsub(/^ {6}/, '')
* [ ] Task 1
* [x] Task 2
EOT
case type
when :issue, :closed_issue
options = { project: project }
when :merge_request
options = { source_project: project, target_project: project }
end
create(
type,
options.merge(title: title,
author: project.users.first,
description: desc_text)
)
end
step 'Header "Description header" should have correct id and link' do step 'Header "Description header" should have correct id and link' do
header_should_have_correct_id_and_link(1, 'Description header', 'description-header') header_should_have_correct_id_and_link(1, 'Description header', 'description-header')
end end
...@@ -16,13 +37,7 @@ module SharedMarkdown ...@@ -16,13 +37,7 @@ module SharedMarkdown
) )
end end
step 'I should see the task status for issue "Tasks-open"' do step 'I should see the task status for the Taskable' 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( expect(find(:css, 'span.task-status').text).to eq(
'2 tasks (1 done, 1 unfinished)' '2 tasks (1 done, 1 unfinished)'
) )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment