+ get api_changeset_comments_path(:limit => 3)
+ assert_response :success
+ assert_comments_in_order [comment23, comment22, comment21]
+
+ get api_changeset_comments_path(:from => "2023-03-15T00:00:00Z")
+ assert_response :success
+ assert_comments_in_order [comment23, comment22]
+
+ get api_changeset_comments_path(:from => "2023-01-15T00:00:00Z", :to => "2023-04-15T00:00:00Z")
+ assert_response :success
+ assert_comments_in_order [comment22, comment21, comment12]
+
+ get api_changeset_comments_path(:user => user1.id)
+ assert_response :success
+ assert_comments_in_order [comment22, comment21, comment11]
+
+ get api_changeset_comments_path(:from => "2023-03-15T00:00:00Z", :format => "json")
+ assert_response :success
+ js = ActiveSupport::JSON.decode(@response.body)
+ assert_not_nil js
+ assert_equal 2, js["comments"].count
+ assert_equal comment23.id, js["comments"][0]["id"]
+ assert_equal comment22.id, js["comments"][1]["id"]
+ end
+
+ def test_create_by_unauthorized
+ assert_no_difference "ChangesetComment.count" do
+ post api_changeset_changeset_comments_path(create(:changeset, :closed), :text => "This is a comment")
+ assert_response :unauthorized
+ end
+ end
+
+ def test_create_on_missing_changeset
+ assert_no_difference "ChangesetComment.count" do
+ post api_changeset_changeset_comments_path(999111, :text => "This is a comment"), :headers => bearer_authorization_header
+ assert_response :not_found
+ end
+ end
+
+ def test_create_on_open_changeset
+ assert_no_difference "ChangesetComment.count" do
+ post api_changeset_changeset_comments_path(create(:changeset), :text => "This is a comment"), :headers => bearer_authorization_header
+ assert_response :conflict
+ end
+ end
+
+ def test_create_without_text
+ assert_no_difference "ChangesetComment.count" do
+ post api_changeset_changeset_comments_path(create(:changeset, :closed)), :headers => bearer_authorization_header
+ assert_response :bad_request
+ end
+ end
+
+ def test_create_with_empty_text
+ assert_no_difference "ChangesetComment.count" do
+ post api_changeset_changeset_comments_path(create(:changeset, :closed), :text => ""), :headers => bearer_authorization_header
+ assert_response :bad_request
+ end
+ end
+
+ def test_create_when_not_agreed_to_terms
+ user = create(:user, :terms_agreed => nil)