Fix API responses when dealing with txt files

This commit is contained in:
Felipe Artur 2017-08-10 16:16:54 -03:00
parent fe09c25d68
commit b7e9862004
3 changed files with 17 additions and 0 deletions

View File

@ -0,0 +1,4 @@
---
title: Fix API responses when dealing with txt files
merge_request:
author:

View File

@ -1,5 +1,8 @@
module API
class Files < Grape::API
# Prevents returning plain/text responses for files with .txt extension
after_validation { content_type "application/json" }
helpers do
def commit_params(attrs)
{

View File

@ -33,6 +33,15 @@ describe API::Files do
expect(Base64.decode64(json_response['content']).lines.first).to eq("require 'fileutils'\n")
end
it 'returns json when file has txt extension' do
file_path = "bar%2Fbranch-test.txt"
get api(route(file_path), current_user), params
expect(response).to have_http_status(200)
expect(response.content_type).to eq('application/json')
end
it 'returns file by commit sha' do
# This file is deleted on HEAD
file_path = "files%2Fjs%2Fcommit%2Ejs%2Ecoffee"
@ -220,6 +229,7 @@ describe API::Files do
post api(route("new_file_with_author%2Etxt"), user), valid_params
expect(response).to have_http_status(201)
expect(response.content_type).to eq('application/json')
last_commit = project.repository.commit.raw
expect(last_commit.author_email).to eq(author_email)
expect(last_commit.author_name).to eq(author_name)