@@ -7,8 +7,49 @@ class MoviesControllerTest < ActionDispatch::IntegrationTest
77 end
88
99 test "should get index" do
10- get movies_url
10+ get movies_url ( format : :json )
1111 assert_response :success
12+ json = JSON . parse ( @response . body )
13+
14+ expected_movies = Movie . all . order ( created_at : :desc )
15+ assert_equal expected_movies . map ( &:id ) , json . map { |movie | movie [ "id" ] }
16+ end
17+
18+ test "should return movies sorted by like count descending" do
19+ get movies_url ( format : :json ) , params : { sort : "likes" }
20+ assert_response :success
21+ json = JSON . parse ( @response . body )
22+
23+ expected_movies = [ movies ( :two ) , movies ( :three ) , movies ( :one ) ]
24+ assert_equal expected_movies . map ( &:id ) , json . map { |movie | movie [ "id" ] }
25+ end
26+
27+ test "should return movies sorted by dislike count descending" do
28+ get movies_url ( format : :json ) , params : { sort : "dislikes" }
29+ assert_response :success
30+ json = JSON . parse ( @response . body )
31+
32+ expected_movies = [ movies ( :one ) , movies ( :three ) , movies ( :two ) ]
33+ assert_equal expected_movies . map ( &:id ) , json . map { |movie | movie [ "id" ] }
34+ end
35+
36+ test "should return movies sorted by creation date ascending" do
37+ get movies_url ( format : :json ) , params : { sort : "date" }
38+ assert_response :success
39+ json = JSON . parse ( @response . body )
40+
41+ expected_movies = Movie . all
42+ assert_equal expected_movies . map ( &:id ) , json . map { |movie | movie [ "id" ] }
43+ end
44+
45+
46+ test "should return movies for a specific user" do
47+ get movies_url ( format : :json ) , params : { user_id : users ( :one ) . id }
48+ assert_response :success
49+ json = JSON . parse ( @response . body )
50+
51+ expected_movies = [ movies ( :three ) , movies ( :one ) ]
52+ assert_equal expected_movies . map ( &:id ) , json . map { |movie | movie [ "id" ] }
1253 end
1354
1455 test "should get new" do
0 commit comments