scinote-web/spec/permissions/controllers/my_module_repositories_controller_spec.rb
2022-08-31 16:37:00 +02:00

78 lines
3.2 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
describe MyModuleRepositoriesController, type: :controller do
include PermissionExtends
it_behaves_like "a controller with authentication", {
index_dt: { my_module_id: 1, id: 1 },
update: { my_module_id: 1, id: 1 },
update_repository_records_modal: { my_module_id: 1, id: 1 },
assign_repository_records_modal: { my_module_id: 1, id: 1 },
repositories_list_html: { my_module_id: 1 },
full_view_table: { my_module_id: 1, id: 1 },
repositories_dropdown_list: { my_module_id: 1 },
export_repository: { my_module_id: 1, id: 1 },
consume_modal: { my_module_id: 1, id: 1 },
update_consumption: { my_module_id: 1, id: 1 }
}, []
login_user
describe 'permissions checking' do
include_context 'reference_project_structure'
let(:repository) { create :repository, team: team, created_by: user }
let (:repository_row) { create :repository_row, repository: repository, created_by: user, last_modified_by: user }
it_behaves_like "a controller action with permissions checking", :get, :index_dt do
let(:testable) { my_module }
let(:permissions) { [MyModulePermissions::READ] }
let(:action_params) { { my_module_id: my_module.id, id: repository.id } }
end
it_behaves_like "a controller action with permissions checking", :put, :update do
let(:testable) { my_module }
let(:permissions) { [MyModulePermissions::REPOSITORY_ROWS_ASSIGN] }
let(:action_params) { { my_module_id: my_module.id, id: repository.id, rows_to_assign: [repository_row.id] } }
end
it_behaves_like "a controller action with permissions checking", :get, :update_repository_records_modal do
let(:testable) { my_module }
let(:permissions) { [MyModulePermissions::READ] }
let(:action_params) { { my_module_id: my_module.id, id: repository.id } }
end
it_behaves_like "a controller action with permissions checking", :get, :assign_repository_records_modal do
let(:testable) { my_module }
let(:permissions) { [MyModulePermissions::READ] }
let(:action_params) { { my_module_id: my_module.id, id: repository.id } }
end
it_behaves_like "a controller action with permissions checking", :get, :repositories_list_html do
let(:testable) { my_module }
let(:permissions) { [MyModulePermissions::READ] }
let(:action_params) { { my_module_id: my_module.id } }
end
it_behaves_like "a controller action with permissions checking", :get, :full_view_table do
let(:testable) { my_module }
let(:permissions) { [MyModulePermissions::READ] }
let(:action_params) { { my_module_id: my_module.id, id: repository.id } }
end
it_behaves_like "a controller action with permissions checking", :get, :repositories_dropdown_list do
let(:testable) { my_module }
let(:permissions) { [MyModulePermissions::READ] }
let(:action_params) { { my_module_id: my_module.id } }
end
it_behaves_like "a controller action with permissions checking", :post, :export_repository do
let(:testable) { my_module }
let(:permissions) { [MyModulePermissions::READ] }
let(:action_params) { { my_module_id: my_module.id, id: repository.id } }
end
end
end