diff --git a/app/models/experiment.rb b/app/models/experiment.rb index 8e9b06ec7..21e19741e 100644 --- a/app/models/experiment.rb +++ b/app/models/experiment.rb @@ -471,6 +471,8 @@ class Experiment < ApplicationRecord x_diff = my_modules.active.pluck(:x).min y_diff = my_modules.active.pluck(:y).min + return unless x_diff && y_diff + moving_direction = { x: x_diff.positive? ? :asc : :desc, y: y_diff.positive? ? :asc : :desc diff --git a/app/services/experiments/move_to_project_service.rb b/app/services/experiments/move_to_project_service.rb index 82d08e871..9e3d2ee1a 100644 --- a/app/services/experiments/move_to_project_service.rb +++ b/app/services/experiments/move_to_project_service.rb @@ -33,10 +33,11 @@ module Experiments end @exp.save! + rescue + @errors.merge!(@exp.errors.to_hash) unless @exp.valid? + raise ActiveRecord::Rollback end - @errors.merge!(@exp.errors.to_hash) unless @exp.valid? - track_activity if succeed? self end diff --git a/spec/controllers/external_protocols_controller_spec.rb b/spec/controllers/external_protocols_controller_spec.rb index 481701b6a..fc378b736 100644 --- a/spec/controllers/external_protocols_controller_spec.rb +++ b/spec/controllers/external_protocols_controller_spec.rb @@ -71,7 +71,7 @@ describe ExternalProtocolsController, type: :controller do let(:action) { get :show, params: params } - let(:html_preview) { double('html_preview') } + let(:html_preview) { double('html_preview', body: '') } before do allow(html_preview).to(receive(:as_json).and_return('')) diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb index ab9d6c6e1..6b26b8c60 100644 --- a/spec/controllers/projects_controller_spec.rb +++ b/spec/controllers/projects_controller_spec.rb @@ -205,12 +205,13 @@ describe ProjectsController, type: :controller do context 'in HTML format' do let(:params) do { id: project_1.id, + view_mode: :archived, project: { name: 'test project A1', team_id: team.id, visibility: 'visible' } } end it 'returns success response' do - get :experiment_archive, params: params + get :show, params: params expect(response).to have_http_status(:success) expect(response.media_type).to eq 'text/html' end