Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
3dff0e47
Commit
3dff0e47
authored
Feb 23, 2017
by
James Edwards-Jones
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated csv feature spec to use background worker
parent
9be4948e
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
21 deletions
+41
-21
app/controllers/projects/issues_controller.rb
app/controllers/projects/issues_controller.rb
+2
-1
app/workers/export_csv_worker.rb
app/workers/export_csv_worker.rb
+1
-1
spec/features/issues/csv_spec.rb
spec/features/issues/csv_spec.rb
+38
-10
spec/support/csv_helpers.rb
spec/support/csv_helpers.rb
+0
-9
No files found.
app/controllers/projects/issues_controller.rb
View file @
3dff0e47
...
...
@@ -148,7 +148,8 @@ class Projects::IssuesController < Projects::ApplicationController
end
def
export_csv
ExportCsvWorker
.
perform_async
(
@current_user
.
id
,
@project
.
id
,
filter_params
)
csv_params
=
filter_params
.
permit
(
IssuableFinder
::
VALID_PARAMS
)
ExportCsvWorker
.
perform_async
(
@current_user
.
id
,
@project
.
id
,
csv_params
)
index_path
=
namespace_project_issues_path
(
@project
.
namespace
,
@project
)
redirect_to
(
index_path
,
notice:
"CSV export queued"
)
...
...
app/workers/export_csv_worker.rb
View file @
3dff0e47
...
...
@@ -8,7 +8,7 @@ class ExportCsvWorker
params
.
merge!
(
project_id:
project_id
)
issues
=
IssuesFinder
.
new
(
@current_user
,
params
).
execute
issues
=
IssuesFinder
.
new
(
@current_user
,
params
.
symbolize_keys
).
execute
Issues
::
ExportCsvService
.
new
(
issues
.
limit
(
100
)).
email
(
@current_user
,
@project
)
end
...
...
spec/features/issues/csv_spec.rb
View file @
3dff0e47
...
...
@@ -10,34 +10,62 @@ describe 'Issues csv', feature: true do
before
{
login_as
(
user
)
}
it
"downloads from a project's issue index"
do
visit
namespace_project_issues_path
(
project
.
namespace
,
project
)
def
request_csv
(
params
=
{})
visit
namespace_project_issues_path
(
project
.
namespace
,
project
,
params
)
click_on
'Download CSV'
click_on
'Request export'
end
def
attachment
ActionMailer
::
Base
.
deliveries
.
last
.
attachments
.
first
end
it
'triggers an email export'
do
expect
(
ExportCsvWorker
).
to
receive
(
:perform_async
).
with
(
user
.
id
,
project
.
id
,
hash_including
(
project_id:
project
.
id
))
request_csv
end
it
"doesn't send request params to ExportCsvWorker"
do
expect
(
ExportCsvWorker
).
to
receive
(
:perform_async
).
with
(
anything
,
anything
,
hash_excluding
(
controller:
anything
,
action:
anything
))
request_csv
end
it
'displays flash message'
do
request_csv
expect
(
page
.
response_headers
[
'Content-Type'
]).
to
include
(
'csv'
)
expect
(
page
).
to
have_content
'CSV export queued'
end
it
'includes a csv attachment'
do
request_csv
expect
(
attachment
.
content_type
).
to
include
(
'text/csv'
)
end
it
'ignores pagination'
do
create_list
(
:issue
,
30
,
project:
project
,
author:
user
)
visit
namespace_project_issues_path
(
project
.
namespace
,
project
)
click_on
'Download CSV'
click_on
'Request export'
request_csv
expect
(
csv
.
count
).
to
eq
31
end
it
'uses filters from issue index'
do
visit
namespace_project_issues_path
(
project
.
namespace
,
project
,
state: :closed
)
click_on
'Download CSV'
click_on
'Request export'
request_csv
(
state: :closed
)
expect
(
csv
.
count
).
to
eq
0
end
def
visit_project_csv
visit
namespace_project_issues_path
(
project
.
namespace
,
project
,
format: :csv
)
#TODO: Move these specs elsewhere
visit
export_csv_namespace_project_issues_path
(
project
.
namespace
,
project
,
method: :post
)
end
def
csv
CSV
.
parse
(
attachment
.
decode_body
,
headers:
true
)
end
it
'avoids excessive database calls'
do
...
...
spec/support/csv_helpers.rb
deleted
100644 → 0
View file @
9be4948e
module
CsvHelpers
def
csv
CSV
.
parse
(
body
,
headers:
true
)
end
end
RSpec
.
configure
do
|
config
|
config
.
include
CsvHelpers
,
type: :feature
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment