Merge branch 'issue_31790' into 'master'
Fix API responses when dealing with txt files Closes #31790 See merge request !13474
This commit is contained in:
commit
05151f7699
3 changed files with 17 additions and 0 deletions
4
changelogs/unreleased/issue_31790.yml
Normal file
4
changelogs/unreleased/issue_31790.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
title: Fix API responses when dealing with txt files
|
||||||
|
merge_request:
|
||||||
|
author:
|
|
@ -1,5 +1,8 @@
|
||||||
module API
|
module API
|
||||||
class Files < Grape::API
|
class Files < Grape::API
|
||||||
|
# Prevents returning plain/text responses for files with .txt extension
|
||||||
|
after_validation { content_type "application/json" }
|
||||||
|
|
||||||
helpers do
|
helpers do
|
||||||
def commit_params(attrs)
|
def commit_params(attrs)
|
||||||
{
|
{
|
||||||
|
|
|
@ -33,6 +33,15 @@ describe API::Files do
|
||||||
expect(Base64.decode64(json_response['content']).lines.first).to eq("require 'fileutils'\n")
|
expect(Base64.decode64(json_response['content']).lines.first).to eq("require 'fileutils'\n")
|
||||||
end
|
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
|
it 'returns file by commit sha' do
|
||||||
# This file is deleted on HEAD
|
# This file is deleted on HEAD
|
||||||
file_path = "files%2Fjs%2Fcommit%2Ejs%2Ecoffee"
|
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
|
post api(route("new_file_with_author%2Etxt"), user), valid_params
|
||||||
|
|
||||||
expect(response).to have_http_status(201)
|
expect(response).to have_http_status(201)
|
||||||
|
expect(response.content_type).to eq('application/json')
|
||||||
last_commit = project.repository.commit.raw
|
last_commit = project.repository.commit.raw
|
||||||
expect(last_commit.author_email).to eq(author_email)
|
expect(last_commit.author_email).to eq(author_email)
|
||||||
expect(last_commit.author_name).to eq(author_name)
|
expect(last_commit.author_name).to eq(author_name)
|
||||||
|
|
Loading…
Reference in a new issue