diff --git a/app/controllers/api/v1/results_controller.rb b/app/controllers/api/v1/results_controller.rb index 12aa92e20..6763a52bb 100644 --- a/app/controllers/api/v1/results_controller.rb +++ b/app/controllers/api/v1/results_controller.rb @@ -113,7 +113,6 @@ module Api old_checksum, new_checksum = nil Result.transaction do old_checksum = @result.asset.file.blob.checksum - @result.asset.file.purge @result.asset.file.attach(result_file_params[:file]) new_checksum = @result.asset.file.blob.checksum end diff --git a/spec/fixtures/files/apple.jpg b/spec/fixtures/files/apple.jpg new file mode 100644 index 000000000..791199443 Binary files /dev/null and b/spec/fixtures/files/apple.jpg differ diff --git a/spec/requests/api/v1/results_controller_spec.rb b/spec/requests/api/v1/results_controller_spec.rb index 573ef2ab9..d346ae686 100644 --- a/spec/requests/api/v1/results_controller_spec.rb +++ b/spec/requests/api/v1/results_controller_spec.rb @@ -371,6 +371,7 @@ RSpec.describe 'Api::V1::ResultsController', type: :request do context 'when resultType is file' do let(:result_file) { @valid_task.results.last } let(:file) { fixture_file_upload('files/test.jpg', 'image/jpg') } + let(:second_file) { fixture_file_upload('files/apple.jpg', 'image/jpg') } let(:request_body) do { data: { @@ -411,6 +412,37 @@ RSpec.describe 'Api::V1::ResultsController', type: :request do end end + context 'when has new image for update' do + let(:request_body_with_same_name_new_file) do + { + data: { + type: 'results', + attributes: { + name: result_file.reload.name + } + }, + included: [ + { type: 'result_files', + attributes: { + file: second_file + } } + ] + } + end + + it 'returns status 200' do + put(api_v1_team_project_experiment_task_result_path( + team_id: @teams.first.id, + project_id: @valid_project, + experiment_id: @valid_experiment, + task_id: @valid_task, + id: result_file.id + ), params: request_body_with_same_name_new_file, headers: @valid_headers) + + expect(response).to have_http_status 200 + end + end + context 'when there is nothing to update' do let(:request_body_with_same_name) do {