voluntary 0.5.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/app/assets/javascripts/voluntary/application.js +5 -1
- data/app/assets/javascripts/voluntary/lib/moment.js +3195 -0
- data/app/assets/javascripts/voluntary/workflow/user/index.js.coffee +11 -0
- data/app/controllers/voluntary/api/v1/organizations_controller.rb +30 -0
- data/app/controllers/workflow/user/stories_controller.rb +15 -0
- data/app/controllers/workflow/user/tasks_controller.rb +18 -0
- data/app/controllers/workflow/user_controller.rb +3 -3
- data/app/models/story.rb +1 -1
- data/app/views/layouts/application.html.erb +1 -1
- data/app/views/workflow/user/index.html.erb +26 -9
- data/app/views/workflow/user/stories/index.html.erb +26 -0
- data/app/views/workflow/user/tasks/assigned.html.erb +26 -0
- data/config/routes/api.rb +3 -1
- data/config/routes/workflow.rb +2 -0
- data/db/migrate/20150818151512_create_or_alter_arguments.rb +1 -1
- data/lib/generators/voluntary/product_dummy/templates/features/support/user_cuke_helpers.rb +5 -5
- data/lib/voluntary/version.rb +1 -1
- metadata +10 -12
- data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/area_behaviour_steps.rb +0 -17
- data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/area_steps.rb +0 -11
- data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/comment_behaviour_steps.rb +0 -23
- data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/comment_steps.rb +0 -25
- data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/product_steps.rb +0 -15
- data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/project_steps.rb +0 -23
- data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/story_steps.rb +0 -33
- data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/task_steps.rb +0 -29
- data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/wizards/story_steps.rb +0 -15
@@ -0,0 +1,30 @@
|
|
1
|
+
module Voluntary
|
2
|
+
module Api
|
3
|
+
module V1
|
4
|
+
class OrganizationsController < ActionController::Base
|
5
|
+
include Voluntary::V1::BaseController
|
6
|
+
|
7
|
+
respond_to :json
|
8
|
+
|
9
|
+
def index
|
10
|
+
options = {}
|
11
|
+
|
12
|
+
collection = Organization.order('name')
|
13
|
+
collection = collection.where(user_id: params[:user_id]) if params[:user_id].present?
|
14
|
+
options[:json] = collection.paginate(page: params[:page], per_page: 100)
|
15
|
+
|
16
|
+
options[:meta] = {
|
17
|
+
pagination: {
|
18
|
+
total_pages: options[:json].total_pages, current_page: options[:json].current_page,
|
19
|
+
previous_page: options[:json].previous_page, next_page: options[:json].next_page
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
respond_with do |format|
|
24
|
+
format.json { render options }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Workflow::User::StoriesController < ApplicationController
|
2
|
+
def index
|
3
|
+
@stories = Story.where(state: 'active', :users_without_tasks_ids.ne => current_user.id).paginate(page: params[:page], per_page: 20)
|
4
|
+
projects = Project.where(id: @stories.map(&:project_id)).index_by(&:id)
|
5
|
+
products = Product.where(id: projects.values.map(&:product_id)).index_by(&:id)
|
6
|
+
|
7
|
+
@stories.map! do |story|
|
8
|
+
projects[story.project_id].product = products[projects[story.project_id].product_id]
|
9
|
+
story.project = projects[story.project_id]
|
10
|
+
story
|
11
|
+
end
|
12
|
+
|
13
|
+
render layout: false if request.xhr?
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class Workflow::User::TasksController < ApplicationController
|
2
|
+
before_action :authenticate_user!
|
3
|
+
|
4
|
+
def assigned
|
5
|
+
@tasks = Task.includes(:story).where(user_id: current_user.id, state: 'assigned')
|
6
|
+
projects = Project.where(id: @tasks.map{|t| t.story.project_id }).index_by(&:id)
|
7
|
+
products = Product.where(id: projects.values.map(&:product_id)).index_by(&:id)
|
8
|
+
|
9
|
+
@tasks.map! do |task|
|
10
|
+
project = projects[task.story.project_id]
|
11
|
+
project.product = products[project.product_id]
|
12
|
+
task.story.project = project
|
13
|
+
task
|
14
|
+
end
|
15
|
+
|
16
|
+
render layout: false if request.xhr?
|
17
|
+
end
|
18
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class Workflow::UserController < ApplicationController
|
2
|
+
before_action :authenticate_user!
|
3
|
+
|
2
4
|
def index
|
3
|
-
@
|
4
|
-
@completed_tasks = Task.complete.where(user_id: current_user.id)
|
5
|
-
@sidenav_links_count = 1
|
5
|
+
@hide_sidebar = true
|
6
6
|
end
|
7
7
|
end
|
data/app/models/story.rb
CHANGED
@@ -52,7 +52,7 @@ class Story
|
|
52
52
|
def offeror=(value); self.offeror_id = value.id; end
|
53
53
|
|
54
54
|
def project; project_id ? Project.find(project_id) : nil; end
|
55
|
-
def project=(value); self.project_id = value.id; end
|
55
|
+
def project=(value); @project = value; self.project_id = value.id; end
|
56
56
|
|
57
57
|
def next_task_for_user(user)
|
58
58
|
return nil if (users_without_tasks_ids || []).include?(user.id)
|
@@ -28,7 +28,7 @@
|
|
28
28
|
</div>
|
29
29
|
<% end %>
|
30
30
|
<div class="row">
|
31
|
-
<% if sidenav(@sidenav_links_count).present? || content_for?(:search) || content_for?(:sidebar) %>
|
31
|
+
<% if (!@hide_sidebar && sidenav(@sidenav_links_count).present?) || content_for?(:search) || content_for?(:sidebar) %>
|
32
32
|
<div class="col-md-9">
|
33
33
|
<% if content_for?(:breadcrumbs) %>
|
34
34
|
<div class="nav" style="padding-bottom:15px;">
|
@@ -1,14 +1,31 @@
|
|
1
|
+
<% content_for :javascript_includes do %>
|
2
|
+
<%= javascript_include_tag 'voluntary/workflow/user/index' %>
|
3
|
+
<% end %>
|
1
4
|
<div class="container-fluid" style="padding-top:0px;">
|
2
5
|
<div class="row">
|
3
|
-
<div class="col-md-
|
4
|
-
<
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
<div class="col-md-12">
|
7
|
+
<div>
|
8
|
+
<ul id="workflow_user_tabs" class="nav nav-tabs" role="tablist">
|
9
|
+
<li role="presentation" class="active">
|
10
|
+
<a href="#stories" aria-controls="stories" role="tab" data-toggle="tab" data-url="<%= stories_workflow_user_index_path %>">
|
11
|
+
<%= t('stories.index.title') %>
|
12
|
+
</a>
|
13
|
+
</li>
|
14
|
+
<li role="presentation">
|
15
|
+
<a href="#assigned_tasks" aria-controls="assigned_tasks" role="tab" data-toggle="tab" data-url="<%= assigned_tasks_workflow_user_index_path %>">
|
16
|
+
<%= t('workflow.index.assigned_tasks') %>
|
17
|
+
</a>
|
18
|
+
</li>
|
19
|
+
</ul>
|
20
|
+
<div class="tab-content">
|
21
|
+
<div role="tabpanel" class="tab-pane active" id="stories" style="padding-top:15px;">
|
22
|
+
Stories
|
23
|
+
</div>
|
24
|
+
<div role="tabpanel" class="tab-pane" id="assigned_tasks" style="padding-top:15px;">
|
25
|
+
Tasks
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
</div>
|
12
29
|
</div>
|
13
30
|
</div>
|
14
31
|
</div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<table class="table table-striped">
|
2
|
+
<thead>
|
3
|
+
<tr>
|
4
|
+
<th><%= t('activerecord.models.story') %></th>
|
5
|
+
<th><%= t('activerecord.models.project') %></th>
|
6
|
+
<th><%= t('activerecord.models.product') %></th>
|
7
|
+
<th></th>
|
8
|
+
</tr>
|
9
|
+
</thead>
|
10
|
+
<tbody>
|
11
|
+
<% @stories.each do |story| %>
|
12
|
+
<tr>
|
13
|
+
<td><%= link_to story.name, story_path(story) %></td>
|
14
|
+
<td><%= link_to story.project.name, project_path(story.project) %></td>
|
15
|
+
<td>
|
16
|
+
<% if story.project.product %>
|
17
|
+
<%= link_to story.project.product.name, product_path(story.project.product) %>
|
18
|
+
<% else %>
|
19
|
+
-
|
20
|
+
<% end %>
|
21
|
+
</td>
|
22
|
+
<td><%= link_to t('workflow.user.next_task'), next_task_workflow_user_index_path(story) %></td>
|
23
|
+
</tr>
|
24
|
+
<% end %>
|
25
|
+
</tbody>
|
26
|
+
</table>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<table class="table table-striped">
|
2
|
+
<thead>
|
3
|
+
<tr>
|
4
|
+
<th><%= t('activerecord.models.task') %></th>
|
5
|
+
<th><%= t('activerecord.models.story') %></th>
|
6
|
+
<th><%= t('activerecord.models.project') %></th>
|
7
|
+
<th><%= t('activerecord.models.product') %></th>
|
8
|
+
</tr>
|
9
|
+
</thead>
|
10
|
+
<tbody>
|
11
|
+
<% @tasks.each do |task| %>
|
12
|
+
<tr>
|
13
|
+
<td><%= link_to task.name, edit_task_workflow_user_index_path(task) %></td>
|
14
|
+
<td><%= link_to task.story.name, story_path(task.story) %></td>
|
15
|
+
<td><%= link_to task.story.project.name, project_path(task.story.project) %></td>
|
16
|
+
<td>
|
17
|
+
<% if task.story.project.product %>
|
18
|
+
<%= link_to task.story.project.product.name, product_path(task.story.project.product) %>
|
19
|
+
<% else %>
|
20
|
+
-
|
21
|
+
<% end %>
|
22
|
+
</td>
|
23
|
+
</tr>
|
24
|
+
<% end %>
|
25
|
+
</tbody>
|
26
|
+
</table>
|
data/config/routes/api.rb
CHANGED
@@ -14,6 +14,8 @@ namespace :voluntary, path: 'api', module: 'voluntary/api', defaults: {format: '
|
|
14
14
|
|
15
15
|
get '/things/:left_thing_name/vs/:right_thing_name/arguments', to: 'things/arguments#comparison'
|
16
16
|
|
17
|
-
resources :users
|
17
|
+
resources :users do
|
18
|
+
resources :organizations, only: [:index]
|
19
|
+
end
|
18
20
|
end
|
19
21
|
end
|
data/config/routes/workflow.rb
CHANGED
@@ -14,6 +14,8 @@ namespace 'workflow' do
|
|
14
14
|
|
15
15
|
get 'projects/:id' => 'user/projects#show', as: :user_project
|
16
16
|
|
17
|
+
get 'stories' => 'user/stories#index', as: :stories
|
18
|
+
get 'tasks/assigned' => 'user/tasks#assigned', as: :assigned_tasks
|
17
19
|
get 'stories/:story_id/tasks' => 'tasks#index', as: :tasks
|
18
20
|
get 'stories/:story_id/tasks/next' => 'tasks#next', as: :next_task
|
19
21
|
patch 'tasks/:id' => 'tasks#update', as: :update_task
|
@@ -4,7 +4,7 @@ class CreateOrAlterArguments < ActiveRecord::Migration
|
|
4
4
|
add_column :arguments, :argumentable_type, :string
|
5
5
|
add_column :arguments, :argumentable_id, :integer
|
6
6
|
|
7
|
-
Argument.update_all
|
7
|
+
Argument.update_all "argumentable_type = 'Thing', argumentable_id = thing_id"
|
8
8
|
|
9
9
|
remove_column :arguments, :thing_id
|
10
10
|
add_index :arguments, [:topic_id, :argumentable_id, :argumentable_type], name: 'arguments_index_on_argumentable_topic', unique: true
|
@@ -4,7 +4,7 @@ module UserCukeHelpers
|
|
4
4
|
# and the given override attributes, adds the standard aspects to it
|
5
5
|
# and returns it
|
6
6
|
def create_user(overrides={})
|
7
|
-
|
7
|
+
FactoryGirl.create(
|
8
8
|
:user, {
|
9
9
|
password: 'password',
|
10
10
|
password_confirmation: 'password'
|
@@ -16,13 +16,13 @@ module UserCukeHelpers
|
|
16
16
|
def login_as(user)
|
17
17
|
fill_in 'Email', with: "#{user}@volontari.at"
|
18
18
|
fill_in 'Password', with: 'password'
|
19
|
-
click_button
|
19
|
+
click_button 'Log in'
|
20
20
|
end
|
21
21
|
|
22
22
|
# create a new @me user, if not present, and log in using the
|
23
23
|
# integration_sessions controller (automatic)
|
24
24
|
def automatic_login
|
25
|
-
@me ||=
|
25
|
+
@me ||= FactoryGirl.create(:user)
|
26
26
|
page.driver.visit(new_integration_sessions_path(user_id: @me.slug))
|
27
27
|
click_button "Login"
|
28
28
|
end
|
@@ -31,7 +31,7 @@ module UserCukeHelpers
|
|
31
31
|
def manual_login
|
32
32
|
visit login_page
|
33
33
|
login_as @me.name
|
34
|
-
visit user_confirmation_path(confirmation_token: @me.confirmation_token)
|
34
|
+
#visit user_confirmation_path(confirmation_token: @me.confirmation_token)
|
35
35
|
end
|
36
36
|
|
37
37
|
# checks the page content to see, if the login was successful
|
@@ -75,4 +75,4 @@ module UserCukeHelpers
|
|
75
75
|
|
76
76
|
end
|
77
77
|
|
78
|
-
World(UserCukeHelpers)
|
78
|
+
World(UserCukeHelpers)
|
data/lib/voluntary/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: voluntary
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mathias Gawlista
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -1130,7 +1130,7 @@ dependencies:
|
|
1130
1130
|
- - "~>"
|
1131
1131
|
- !ruby/object:Gem::Version
|
1132
1132
|
version: 2.2.0
|
1133
|
-
description: "#Crowdsourcing management system for #RubyOnRails: http://bit.ly/voluntary-0-5-
|
1133
|
+
description: "#Crowdsourcing management system for #RubyOnRails: http://bit.ly/voluntary-0-5-2"
|
1134
1134
|
email:
|
1135
1135
|
- gawlista@gmail.com
|
1136
1136
|
executables: []
|
@@ -1147,9 +1147,11 @@ files:
|
|
1147
1147
|
- app/assets/javascripts/voluntary/functions.js
|
1148
1148
|
- app/assets/javascripts/voluntary/lib/jquery-competitive_list.js
|
1149
1149
|
- app/assets/javascripts/voluntary/lib/jquery.multisortable.js
|
1150
|
+
- app/assets/javascripts/voluntary/lib/moment.js
|
1150
1151
|
- app/assets/javascripts/voluntary/lib/sugar.js
|
1151
1152
|
- app/assets/javascripts/voluntary/likes/list.js.coffee
|
1152
1153
|
- app/assets/javascripts/voluntary/users.js.coffee
|
1154
|
+
- app/assets/javascripts/voluntary/workflow/user/index.js.coffee
|
1153
1155
|
- app/assets/stylesheets/voluntary/application.css
|
1154
1156
|
- app/assets/stylesheets/voluntary/base.css.sass
|
1155
1157
|
- app/assets/stylesheets/voluntary/bootstrap_and_overrides.css.sass
|
@@ -1173,6 +1175,7 @@ files:
|
|
1173
1175
|
- app/controllers/voluntary/api/v1/argument_topics_controller.rb
|
1174
1176
|
- app/controllers/voluntary/api/v1/arguments_controller.rb
|
1175
1177
|
- app/controllers/voluntary/api/v1/base_controller.rb
|
1178
|
+
- app/controllers/voluntary/api/v1/organizations_controller.rb
|
1176
1179
|
- app/controllers/voluntary/api/v1/tasks_controller.rb
|
1177
1180
|
- app/controllers/voluntary/api/v1/things/arguments_controller.rb
|
1178
1181
|
- app/controllers/voluntary/api/v1/users_controller.rb
|
@@ -1183,6 +1186,8 @@ files:
|
|
1183
1186
|
- app/controllers/workflow/tasks_controller.rb
|
1184
1187
|
- app/controllers/workflow/user/product/areas_controller.rb
|
1185
1188
|
- app/controllers/workflow/user/projects_controller.rb
|
1189
|
+
- app/controllers/workflow/user/stories_controller.rb
|
1190
|
+
- app/controllers/workflow/user/tasks_controller.rb
|
1186
1191
|
- app/controllers/workflow/user_controller.rb
|
1187
1192
|
- app/controllers/workflow_controller.rb
|
1188
1193
|
- app/helpers/voluntary/application_helper.rb
|
@@ -1334,6 +1339,8 @@ files:
|
|
1334
1339
|
- app/views/workflow/user/index.html.erb
|
1335
1340
|
- app/views/workflow/user/product/areas/show.html.erb
|
1336
1341
|
- app/views/workflow/user/projects/show.html.erb
|
1342
|
+
- app/views/workflow/user/stories/index.html.erb
|
1343
|
+
- app/views/workflow/user/tasks/assigned.html.erb
|
1337
1344
|
- config/initializers/1_initialize_app_config.rb
|
1338
1345
|
- config/initializers/active_model_serializer.rb
|
1339
1346
|
- config/initializers/assets.rb
|
@@ -1462,24 +1469,15 @@ files:
|
|
1462
1469
|
- lib/generators/voluntary/product_dummy/templates/dummy/config/initializers/secret_token.rb
|
1463
1470
|
- lib/generators/voluntary/product_dummy/templates/dummy/spec/factories.rb
|
1464
1471
|
- lib/generators/voluntary/product_dummy/templates/dummy/spec/spec_helper.rb
|
1465
|
-
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/area_behaviour_steps.rb
|
1466
|
-
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/area_steps.rb
|
1467
|
-
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/comment_behaviour_steps.rb
|
1468
|
-
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/comment_steps.rb
|
1469
1472
|
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/custom_web_steps.rb
|
1470
1473
|
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/email_steps.rb
|
1471
1474
|
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/factory_steps.rb
|
1472
1475
|
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/javascript_steps.rb
|
1473
1476
|
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/navigation_steps.rb
|
1474
|
-
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/product_steps.rb
|
1475
|
-
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/project_steps.rb
|
1476
1477
|
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/resources_steps.rb
|
1477
1478
|
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/session_steps.rb
|
1478
|
-
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/story_steps.rb
|
1479
|
-
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/task_steps.rb
|
1480
1479
|
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/user_steps.rb
|
1481
1480
|
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/web_steps.rb
|
1482
|
-
- lib/generators/voluntary/product_dummy/templates/features/step_definitions/wizards/story_steps.rb
|
1483
1481
|
- lib/generators/voluntary/product_dummy/templates/features/support/database_cleaner_patches.rb
|
1484
1482
|
- lib/generators/voluntary/product_dummy/templates/features/support/env.rb
|
1485
1483
|
- lib/generators/voluntary/product_dummy/templates/features/support/integration_sessions_controller.rb
|
@@ -1,17 +0,0 @@
|
|
1
|
-
Then /^I can't edit areas$/ do
|
2
|
-
steps %{
|
3
|
-
Given an area named "area 1"
|
4
|
-
When I go to the edit area page
|
5
|
-
Then I should see "Access denied"
|
6
|
-
}
|
7
|
-
end
|
8
|
-
|
9
|
-
Then /^I can't delete areas$/ do
|
10
|
-
steps %{
|
11
|
-
Given an area named "area 1"
|
12
|
-
When I am on the area page
|
13
|
-
Then I should not see "Actions"
|
14
|
-
}
|
15
|
-
end
|
16
|
-
|
17
|
-
|
data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/area_steps.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
Given /^an area named "([^\"]*)"$/ do |name|
|
2
|
-
# WORKAROUND: get rid of area query. Don't know why it doesn't work without (e.g. /roles/2_users/projects.feature)
|
3
|
-
@area = Area.where(name: name).first || Factory(:area, name: name)
|
4
|
-
@area.reload
|
5
|
-
end
|
6
|
-
|
7
|
-
Then /^I should see the following areas:$/ do |expected_table|
|
8
|
-
rows = find("table").all('tr')
|
9
|
-
table = rows.map { |r| r.all('th,td').map { |c| c.text.strip } }
|
10
|
-
expected_table.diff!(table)
|
11
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
When /^I fill out a comment form$/ do
|
2
|
-
fill_in 'Subject', with: 'Comment 1'
|
3
|
-
fill_in 'Text', with: 'Dummy 1'
|
4
|
-
end
|
5
|
-
|
6
|
-
When /^I fill out a comment's comment form$/ do
|
7
|
-
fill_in 'Subject', with: 'Comment 2'
|
8
|
-
fill_in 'Text', with: 'Dummy 2'
|
9
|
-
end
|
10
|
-
|
11
|
-
Then /^I should see the comment$/ do
|
12
|
-
steps %{
|
13
|
-
Then I should see "Comment 1"
|
14
|
-
And I should see "Dummy 1"
|
15
|
-
}
|
16
|
-
end
|
17
|
-
|
18
|
-
Then /^I should see the comment's comment$/ do
|
19
|
-
page.should have_xpath(
|
20
|
-
'//div[@class="nested_comments"]//div[@class="comment"]//div[@class="content"]//p',
|
21
|
-
text: 'Dummy 2'
|
22
|
-
)
|
23
|
-
end
|
data/lib/generators/voluntary/product_dummy/templates/features/step_definitions/comment_steps.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
Given /^a comment$/ do
|
2
|
-
attributes = { commentable: @project }
|
3
|
-
attributes[:user_id] ||= @me.id if @me
|
4
|
-
@comment = Factory(:comment, attributes)
|
5
|
-
@comment.reload
|
6
|
-
end
|
7
|
-
|
8
|
-
When /^I reply the (\d+)(?:st|nd|rd|th) comment$/ do |pos|
|
9
|
-
find(:xpath, "//a[@class='new_comment'][#{pos.to_i}]").click
|
10
|
-
end
|
11
|
-
|
12
|
-
When /^I edit the (\d+)(?:st|nd|rd|th) comment$/ do |pos|
|
13
|
-
find(:xpath, "//a[@class='edit_comment'][#{pos.to_i}]").click
|
14
|
-
end
|
15
|
-
|
16
|
-
When /^I delete the (\d+)(?:st|nd|rd|th) comment$/ do |pos|
|
17
|
-
page.execute_script 'window.confirm = function () { return true }'
|
18
|
-
find(:xpath, "//a[@class='destroy_comment'][#{pos.to_i}]").click
|
19
|
-
end
|
20
|
-
|
21
|
-
Then /^I should see the following comments:$/ do |expected_table|
|
22
|
-
expected_table.hashes.each do |hash|
|
23
|
-
steps %{Then I should see "#{hash['Name']}"}
|
24
|
-
end
|
25
|
-
end
|