mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-08 14:15:35 +08:00
Update context helper [SCI-6072]
This commit is contained in:
parent
b4d0a8ff83
commit
a0fef97fbc
10 changed files with 94 additions and 76 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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 }
|
||||
|
|
|
@ -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 } }
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
71
spec/support/reference_project_structure_context.rb
Normal file
71
spec/support/reference_project_structure_context.rb
Normal 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
|
Loading…
Add table
Reference in a new issue