summaryrefslogtreecommitdiff
path: root/spec/controllers/projects/milestones_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/projects/milestones_controller_spec.rb')
-rw-r--r--spec/controllers/projects/milestones_controller_spec.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/spec/controllers/projects/milestones_controller_spec.rb b/spec/controllers/projects/milestones_controller_spec.rb
index 28da7eff8fc..e2b73e55145 100644
--- a/spec/controllers/projects/milestones_controller_spec.rb
+++ b/spec/controllers/projects/milestones_controller_spec.rb
@@ -156,6 +156,27 @@ RSpec.describe Projects::MilestonesController do
end
end
+ describe "#update" do
+ let(:milestone_params) do
+ { title: "title changed" }
+ end
+
+ it "handles ActiveRecord::StaleObjectError" do
+ # Purposely reduce the lock_version to trigger an ActiveRecord::StaleObjectError
+ milestone_params[:lock_version] = milestone.lock_version - 1
+
+ put :update, params: {
+ id: milestone.iid,
+ milestone: milestone_params,
+ namespace_id: project.namespace.id,
+ project_id: project.id
+ }
+
+ expect(response).not_to redirect_to(project_milestone_path(project, milestone.iid))
+ expect(response).to render_template(:edit)
+ end
+ end
+
describe "#destroy" do
it "removes milestone" do
expect(issue.milestone_id).to eq(milestone.id)