<% end %>
diff --git a/config/routes.rb b/config/routes.rb
index fbb59a7d0..9b3b13b53 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -205,7 +205,8 @@ Rails.application.routes.draw do
get "new-organisation-telephone-number"
get "new-organisation-type"
get "merge-date"
- get "details", to: "merge_requests#details"
+ get "delete-confirmation", to: "merge_requests#delete_confirmation"
+ delete "delete", to: "merge_requests#delete"
end
end
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb
index e3bb24b46..10901623f 100644
--- a/spec/models/merge_request_spec.rb
+++ b/spec/models/merge_request_spec.rb
@@ -23,4 +23,25 @@ RSpec.describe MergeRequest, type: :model do
expect(described_class.visible).to include(not_merged)
end
end
+
+ describe "#discard!" do
+ let(:merge_request) { create(:merge_request) }
+
+ it "sets the discarded_at field to the current time" do
+ Timecop.freeze(Time.zone.now) do
+ merge_request.discard!
+ expect(merge_request.discarded_at).to eq(Time.zone.now)
+ end
+ end
+
+ it "does not delete the record" do
+ merge_request.discard!
+ expect(merge_request).to be_persisted
+ end
+
+ it "is not visible in the visible scope" do
+ merge_request.discard!
+ expect(described_class.visible).not_to include(merge_request)
+ end
+ end
end