Skip to content

Commit 230be4d

Browse files
committed
ROAD-609: Export approved stories only
We use the CSV tool to export stories to Jira for example. We only want to work on stories that we approved and therefore we only want to export stories from Points that were approved. See: https://ombulabs.atlassian.net/browse/ROAD-609
1 parent 7b52e9f commit 230be4d

File tree

4 files changed

+16
-9
lines changed

4 files changed

+16
-9
lines changed

Gemfile.lock

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,7 @@ GEM
443443

444444
PLATFORMS
445445
x86_64-darwin-21
446+
x86_64-darwin-22
446447
x86_64-linux
447448

448449
DEPENDENCIES

app/controllers/stories_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def export
9090
csv = if params[:export_with_comments] == "1"
9191
CSV.generate(headers: true) do |csv|
9292
csv << CSV_HEADERS + ["comment"]
93-
@project.stories.includes(:comments).by_position.each do |story|
93+
@project.stories.includes(:comments).approved.by_position.each do |story|
9494
comments = []
9595
story.comments.each do |comment|
9696
comments << "#{comment.user.name}: #{comment.body}"
@@ -101,7 +101,7 @@ def export
101101
else
102102
CSV.generate(headers: true) do |csv|
103103
csv << CSV_HEADERS
104-
@project.stories.by_position.each do |story|
104+
@project.stories.approved.by_position.each do |story|
105105
csv << story.attributes.slice(*CSV_HEADERS)
106106
end
107107
end

spec/controllers/stories_controller_spec.rb

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
render_views
55

66
let!(:project) { FactoryBot.create(:project) }
7-
let!(:story) { FactoryBot.create(:story, project: project) }
7+
let!(:story) { FactoryBot.create(:story, project: project, status: :approved) }
88

99
before do
1010
@request.env["devise.mapping"] = Devise.mappings[:user]
@@ -173,7 +173,9 @@
173173
end
174174

175175
describe "#export" do
176-
it "exports a CSV file" do
176+
it "exports a CSV file with approved stories only" do
177+
FactoryBot.create(:story, project: project, status: :rejected)
178+
FactoryBot.create(:story, project: project, status: :pending)
177179
get :export, params: {project_id: project.id}
178180
expect(response).to have_http_status(:ok)
179181

@@ -186,11 +188,13 @@
186188
end
187189

188190
context "with comments" do
189-
it "exports a CSV file" do
191+
it "exports a CSV file with approved stories only" do
190192
user = FactoryBot.create(:user)
191-
story2 = FactoryBot.create(:story, project: project)
192-
story3 = FactoryBot.create(:story, project: project)
193-
story4 = FactoryBot.create(:story, project: project)
193+
story2 = FactoryBot.create(:story, project: project, status: :approved)
194+
story3 = FactoryBot.create(:story, project: project, status: :approved)
195+
story4 = FactoryBot.create(:story, project: project, status: :approved)
196+
FactoryBot.create(:story, project: project, status: :rejected)
197+
FactoryBot.create(:story, project: project, status: :pending)
194198
comment1 = FactoryBot.create(:comment, user: user, story: story)
195199
comment1_2 = FactoryBot.create(:comment, user: user, story: story)
196200
comment2_1 = FactoryBot.create(:comment, user: user, story: story2)

spec/features/projects_manage_spec.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,12 @@
141141

142142
context "import & Export" do
143143
before do
144-
project.stories.create(title: "php upgrade", description: "quick php upgrade")
144+
project.stories.create(title: "php upgrade", description: "quick php upgrade", status: :approved)
145145
end
146146

147147
it "allows me to export a CSV", js: false do
148+
project.stories.create(title: "pending story", description: "pending stories don't export", status: :pending)
149+
project.stories.create(title: "rejected story", description: "rejected stories don't export", status: :rejected)
148150
visit project_path(id: project.id)
149151
find("#import-export").click
150152

0 commit comments

Comments
 (0)