Update context helper [SCI-6072]

This commit is contained in:
aignatov-bio 2021-09-14 12:45:44 +02:00
parent b4d0a8ff83
commit a0fef97fbc
10 changed files with 94 additions and 76 deletions

View file

@ -3,7 +3,9 @@
require 'rails_helper'
describe AssetsController, type: :controller do
include_context 'project_generator', {
login_user
include_context 'reference_project_structure', {
role: :owner_role,
result_asset: true,
step: true,
@ -29,11 +31,9 @@ describe AssetsController, type: :controller do
end
it 'calls create activity service (start edit image on step)' do
params[:id] = step_asset.asset.id
p result_asset_comment
expect(Activities::CreateActivityService).to receive(:call)
.with(hash_including(activity_type: :edit_image_on_step))
action
p response.code
end
it 'calls create activity service (start edit image on result)' do

View file

@ -3,7 +3,8 @@
require 'rails_helper'
describe CanvasController do
include_context 'project_generator'
login_user
include_context 'reference_project_structure'
let(:experiment2) { create :experiment, project: project }
@ -82,9 +83,9 @@ describe CanvasController do
before do
8.times do |i|
create_user_assignment(public_send("task#{i+1}"), owner_role, user)
create_user_assignment(public_send("task#{i+1}"), role, user)
end
create_user_assignment(experiment2, owner_role, user)
create_user_assignment(experiment2, role, user)
end
context 'when have a lot changes on canvas' do

View file

@ -3,11 +3,9 @@
require 'rails_helper'
describe ExperimentsController, type: :controller do
include_context 'project_generator'
login_user
include_context 'reference_project_structure'
before do
create_user_assignment(experiment, owner_role, user)
end
describe 'POST create' do
let(:action) { post :create, params: params, format: :json }
@ -72,7 +70,7 @@ describe ExperimentsController, type: :controller do
end
before do
create_user_assignment(archived_experiment, owner_role, user)
create_user_assignment(archived_experiment, role, user)
end
it 'calls create activity for unarchiving experiment' do

View file

@ -3,7 +3,8 @@
require 'rails_helper'
describe MyModuleCommentsController, type: :controller do
include_context 'project_generator' , {
login_user
include_context 'reference_project_structure' , {
role: :normal_user_role,
my_module_comment: true
}

View file

@ -3,7 +3,8 @@
require 'rails_helper'
describe MyModuleRepositoriesController, type: :controller do
include_context 'project_generator' , {
login_user
include_context 'reference_project_structure' , {
role: :normal_user_role
}
let!(:repository) { create :repository, created_by: user, team: team }

View file

@ -3,10 +3,12 @@
require 'rails_helper'
describe MyModuleTagsController, type: :controller do
include_context 'project_generator'
login_user
include_context 'reference_project_structure', {
tag: true
}
describe 'POST create' do
let(:tag) { create :tag, project: project }
let(:action) { post :create, params: params, format: :json }
let(:params) do
{ my_module_id: my_module.id, my_module_tag: { tag_id: tag.id } }

View file

@ -3,7 +3,8 @@
require 'rails_helper'
describe MyModulesController, type: :controller do
include_context 'project_generator'
login_user
include_context 'reference_project_structure'
let!(:repository) { create :repository, created_by: user, team: team }
let!(:repository_row) do
@ -180,7 +181,7 @@ describe MyModulesController, type: :controller do
before do
3.times do |i|
create_user_assignment(public_send("task#{i+1}"), owner_role, user)
create_user_assignment(public_send("task#{i+1}"), role, user)
end
end

View file

@ -3,7 +3,8 @@
require 'rails_helper'
describe ProjectCommentsController, type: :controller do
include_context 'project_generator', {
login_user
include_context 'reference_project_structure', {
project_comment: true
}
describe 'POST create' do

View file

@ -1,58 +0,0 @@
RSpec.shared_context 'project_generator' do |config|
login_user
let(:user) { subject.current_user }
let(:role) { create (config[:role] || :owner_role) }
let!(:team) { create :team, created_by: user }
let(:user_team) { create :user_team, :admin, user: user, team: team }
let(:project) { create :project, team: team }
let(:experiment) { create :experiment, project: project }
let(:my_module) { create :my_module, experiment: experiment }
let(:protocol) { create :protocol, my_module: my_module, team: team, added_by: user }
if config[:tag]
let(:tag) { create :tag, project: project}
end
if config[:project_comment]
let(:project_comment) { create :project_comment, project: project, user: user }
end
if config[:my_module_comment]
let(:my_module_comment) { create :task_comment, my_module: my_module, user: user }
end
if config[:step]
let(:step) { create :step, protocol: protocol, user: user}
if config[:step_comment]
let(:step_comment) { create :step_comment, step: step, user: user}
end
if config[:step_asset]
let(:step_asset) { create :step_asset, step: step }
end
if config[:step_table]
let(:step_table) { create :step_table, step: step }
end
if config[:step_checklist]
let(:step_checklist) { create :step_checklist, step: step }
end
end
[:result_asset, :result_text, :result_table].each do |result|
if config[result]
let(result) { create result, result: (create :result, my_module: my_module, user: user )}
if config[:result_comment]
let("#{result}_comment") { create :result_comment, result: public_send(result).result, user: user }
end
end
end
before do
create_user_assignment(my_module, role, user) unless config[:skip_assignments]
end
end

View file

@ -0,0 +1,71 @@
# Example
#
# include_context 'reference_project_structure', {
# role: :owner_role,
# result_asset: true,
# step: true,
# team: @team,
# step_asset: true,
# result_comment: true,
# project_comments: 4,
# tags: 2,
# skip_assignments: true
# }
RSpec.shared_context 'reference_project_structure' do |config|
config ||= {}
let(:user) { subject.current_user }
unless config[:skip_role]
let(:role) { create (config[:role] || :owner_role) }
end
let!(:team) { config[:team] || (create :team, created_by: user) }
let!(:user_team) { create :user_team, :admin, user: user, team: team }
let(:project) { create :project, team: team }
let(:experiment) { create :experiment, project: project }
let(:my_module) { create :my_module, experiment: experiment }
let(:tag) { create :tag, project: project} if config[:tag]
let(:tags) { create_list :tag, config[:tags], project: project} if config[:tags]
let(:project_comment) { create :project_comment, project: project, user: user } if config[:project_comment]
let(:project_comments) { create_list :project_comment, config[:project_comments], project: project, user: user } if config[:project_comments]
let(:my_module_comment) { create :task_comment, my_module: my_module, user: user } if config[:my_module_comment]
let(:my_module_comments) { create_list :task_comment, config[:my_module_comments], my_module: my_module, user: user } if config[:my_module_comments]
if config[:step]
let(:step) { create :step, protocol: my_module.protocol, user: user}
let(:step_comment) { create :step_comment, step: step, user: user} if config[:step_comment]
let(:step_comments) { create_list :step_comment, config[:step_comments], step: step, user: user} if config[:step_comments]
[:step_asset, :step_table, :step_checklist].each do |step_component|
let(step_component) { create step_component, step: step } if config[step_component]
end
[:step_assets, :step_tables, :step_checklists].each do |step_components|
let(step_components) { create_list step_components, config[step_components], step: step } if config[step_components]
end
end
if config[:steps]
let(:steps) { create_list :step, config[:steps], protocol: my_module.protocol, user: user}
end
[:result_asset, :result_text, :result_table].each do |result|
if config[result]
let(result) { create result, result: (create :result, my_module: my_module, user: user )}
let("#{result}_comment") { create :result_comment, result: public_send(result).result, user: user } if config[:result_comment]
let("#{result}_comments") { create_list :result_comment, config[:result_comments], result: public_send(result).result, user: user } if config[:result_comments]
end
end
[:result_assets, :result_texts, :result_tables].each do |result|
if config[result]
let(result) { create_list result, config[result], result: (create :result, my_module: my_module, user: user )}
end
end
before do
create_user_assignment(my_module, role, user) unless config[:skip_assignments]
end
end