From f37b4cc5ad1440098fedaf544b2ef42dd7513cbd Mon Sep 17 00:00:00 2001
From: Marin Jankovski <marin@gitlab.com>
Date: Mon, 15 Sep 2014 11:54:16 +0200
Subject: [PATCH] Different created_at and updated_at time in api
 merge_requests spec.

---
 spec/requests/api/merge_requests_spec.rb | 86 +++++++++++++++---------
 1 file changed, 55 insertions(+), 31 deletions(-)

diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb
index 7a3d0c63f8b..d39962670b1 100644
--- a/spec/requests/api/merge_requests_spec.rb
+++ b/spec/requests/api/merge_requests_spec.rb
@@ -57,37 +57,45 @@ describe API::API, api: true  do
         json_response.length.should == 1
         json_response.first['title'].should == merge_request_merged.title
       end
-      it "should return an array of merge_requests in ascending order" do
-        get api("/projects/#{project.id}/merge_requests?sort=asc", user)
-        response.status.should == 200
-        json_response.should be_an Array
-        json_response.length.should == 3
-        json_response.first['id'].should == merge_request.id
-        json_response.last['id'].should == merge_request_merged.id
-      end
-      it "should return an array of merge_requests in descending order" do
-        get api("/projects/#{project.id}/merge_requests?sort=desc", user)
-        response.status.should == 200
-        json_response.should be_an Array
-        json_response.length.should == 3
-        json_response.first['id'].should == merge_request_merged.id
-        json_response.last['id'].should == merge_request.id
-      end
-      it "should return an array of merge_requests ordered by updated_at" do
-        get api("/projects/#{project.id}/merge_requests?order_by=updated_at", user)
-        response.status.should == 200
-        json_response.should be_an Array
-        json_response.length.should == 3
-        json_response.first['id'].should == merge_request.id
-        json_response.last['id'].should == merge_request_merged.id
-      end
-      it "should return an array of merge_requests ordered by created_at" do
-        get api("/projects/#{project.id}/merge_requests?sort=created_at", user)
-        response.status.should == 200
-        json_response.should be_an Array
-        json_response.length.should == 3
-        json_response.first['id'].should == merge_request.id
-        json_response.last['id'].should == merge_request_merged.id
+
+      context "with ordering" do
+        before do
+          @mr_later = mr_with_later_created_and_updated_at_time
+          @mr_earlier = mr_with_earlier_created_and_updated_at_time
+        end
+
+        it "should return an array of merge_requests in ascending order" do
+          get api("/projects/#{project.id}/merge_requests?sort=asc", user)
+          response.status.should == 200
+          json_response.should be_an Array
+          json_response.length.should == 3
+          json_response.first['id'].should == @mr_earlier.id
+          json_response.last['id'].should == @mr_later.id
+        end
+        it "should return an array of merge_requests in descending order" do
+          get api("/projects/#{project.id}/merge_requests?sort=desc", user)
+          response.status.should == 200
+          json_response.should be_an Array
+          json_response.length.should == 3
+          json_response.first['id'].should == @mr_later.id
+          json_response.last['id'].should == @mr_earlier.id
+        end
+        it "should return an array of merge_requests ordered by updated_at" do
+          get api("/projects/#{project.id}/merge_requests?order_by=updated_at", user)
+          response.status.should == 200
+          json_response.should be_an Array
+          json_response.length.should == 3
+          json_response.first['id'].should == @mr_earlier.id
+          json_response.last['id'].should == @mr_later.id
+        end
+        it "should return an array of merge_requests ordered by created_at" do
+          get api("/projects/#{project.id}/merge_requests?sort=created_at", user)
+          response.status.should == 200
+          json_response.should be_an Array
+          json_response.length.should == 3
+          json_response.first['id'].should == @mr_earlier.id
+          json_response.last['id'].should == @mr_later.id
+        end
       end
     end
   end
@@ -328,4 +336,20 @@ describe API::API, api: true  do
       response.status.should == 404
     end
   end
+
+  def mr_with_later_created_and_updated_at_time
+    merge_request
+    merge_request.created_at += 1.hour
+    merge_request.updated_at += 30.minutes
+    merge_request.save
+    merge_request
+  end
+
+  def mr_with_earlier_created_and_updated_at_time
+    merge_request_closed
+    merge_request_closed.created_at -= 1.hour
+    merge_request_closed.updated_at -= 30.minutes
+    merge_request_closed.save
+    merge_request_closed
+  end
 end
-- 
GitLab