fix failng scenarios and remove uneeded code

This commit is contained in:
zmagoD 2021-05-29 17:25:20 +02:00
parent 28cb7ee81d
commit f1c3bf7cf6
39 changed files with 228 additions and 66 deletions

View file

@ -265,27 +265,6 @@ var ProjectsIndex = (function() {
manageProjectUsersModal.find('.modal-footer').html(data.html_footer);
}
// Initialize manage project users modal remote loading.
function initManageProjectUsersLink() {
$(projectsWrapper).on('ajax:success', '.manage-project-users-link', function(e, data) {
initManageProjectUsersModalBody(data);
manageProjectUsersModal.modal('show');
});
}
// Initialize view project users modal remote loading.
function initViewProjectUsersLink() {
$(projectsWrapper).on('ajax:success', '.view-project-users-link', function(e, data) {
let viewProjectUsersModal = $(data.html);
$(projectsWrapper).append(viewProjectUsersModal);
viewProjectUsersModal.modal('show');
// Remove modal when it gets closed
viewProjectUsersModal.on('hidden.bs.modal', function() {
viewProjectUsersModal.remove();
});
});
}
// Initialize reloading manage user modal content after posting new
// user.
function initAddUserForm() {

View file

@ -8,10 +8,12 @@ describe AssetsController, type: :controller do
let(:user) { subject.current_user }
let!(:team) { create :team, created_by: user }
let(:user_team) { create :user_team, :admin, user: user, team: team }
let!(:user_project) { create :user_project, :owner, user: user }
let!(:user_project) { create :user_project, user: user }
let(:project) do
create :project, team: team, user_projects: [user_project]
end
let(:owner_role) { create :owner_role }
let!(:user_assignment) { create :user_assignment, assignable: project, user: user, user_role: owner_role, assigned_by: user }
let(:experiment) { create :experiment, project: project }
let(:my_module) { create :my_module, name: 'test task', experiment: experiment }
let(:protocol) do

View file

@ -9,11 +9,13 @@ describe CanvasController do
let(:team) { create :team, created_by: user }
let!(:user_team) { create :user_team, :admin, user: user, team: team }
let!(:user_project) do
create :user_project, :owner, user: user, project: project
create :user_project, user: user, project: project
end
let(:project) do
create :project, team: team
end
let(:owner_role) { create :owner_role }
let!(:user_assignment) { create :user_assignment, assignable: project, user: user, user_role: owner_role, assigned_by: user }
let(:experiment) { create :experiment, project: project }
let(:experiment2) { create :experiment, project: project }

View file

@ -9,8 +9,10 @@ describe ExperimentsController, type: :controller do
let!(:team) { create :team, created_by: user, users: [user] }
let!(:project) { create :project, team: team }
let!(:user_project) do
create :user_project, :owner, user: user, project: project
create :user_project, user: user, project: project
end
let(:owner_role) { create :owner_role }
let!(:user_assignment) { create :user_assignment, assignable: project, user: user, user_role: owner_role, assigned_by: user }
let(:experiment) { create :experiment, project: project }
describe 'POST create' do

View file

@ -10,8 +10,10 @@ describe MyModuleCommentsController, type: :controller do
let!(:user_team) { create :user_team, :admin, user: user, team: team }
let(:project) { create :project, team: team, created_by: user }
let!(:user_project) do
create :user_project, :normal_user, user: user, project: project
create :user_project, user: user, project: project
end
let(:normal_user_role) { create :normal_user_role }
let!(:user_assignment) { create :user_assignment, assignable: project, user: user, user_role: normal_user_role, assigned_by: user }
let(:experiment) { create :experiment, project: project }
let(:my_module) { create :my_module, experiment: experiment }
let(:task_comment) { create :task_comment, user: user, my_module: my_module }

View file

@ -10,8 +10,10 @@ describe MyModuleRepositoriesController, type: :controller do
let!(:user_team) { create :user_team, :admin, user: user, team: team }
let(:project) { create :project, team: team, created_by: user }
let!(:user_project) do
create :user_project, :normal_user, user: user, project: project
create :user_project, user: user, project: project
end
let(:normal_user_role) { create :normal_user_role }
let!(:user_assignment) { create :user_assignment, assignable: project, user: user, user_role: normal_user_role, assigned_by: user }
let!(:repository) { create :repository, created_by: user, team: team }
let!(:repository_row) do
create :repository_row, created_by: user, repository: repository

View file

@ -10,8 +10,10 @@ describe MyModuleTagsController, type: :controller do
let!(:user_team) { create :user_team, :admin, user: user, team: team }
let(:project) { create :project, created_by: user }
let!(:user_project) do
create :user_project, :normal_user, user: user, project: project
create :user_project, user: user, project: project
end
let(:normal_user_role) { create :normal_user_role }
let!(:user_assignment) { create :user_assignment, assignable: project, user: user, user_role: normal_user_role, assigned_by: user }
let(:experiment) { create :experiment, project: project }
let(:my_module) { create :my_module, experiment: experiment }

View file

@ -10,8 +10,10 @@ describe MyModulesController, type: :controller do
let!(:user_team) { create :user_team, :admin, user: user, team: team }
let(:project) { create :project, team: team, created_by: user }
let!(:user_project) do
create :user_project, :normal_user, user: user, project: project
create :user_project, user: user, project: project
end
let(:normal_user_role) { create :normal_user_role }
let!(:user_assignment) { create :user_assignment, assignable: project, user: user, user_role: normal_user_role, assigned_by: user }
let!(:repository) { create :repository, created_by: user, team: team }
let!(:repository_row) do
create :repository_row, created_by: user, repository: repository
@ -187,7 +189,14 @@ describe MyModulesController, type: :controller do
let(:task2) { create :my_module, :archived, experiment: experiment }
let(:task3) { create :my_module, :archived, experiment: experiment }
let(:user) { controller.current_user }
let!(:user_project) { create :user_project, user: user, project: experiment.project, role: 0 }
let!(:user_project) { create :user_project, user: user, project: experiment.project }
let!(:user_assignment) do
create :user_assignment,
assignable: experiment.project,
user: user,
user_role: create(:owner_role),
assigned_by: user
end
context 'when tasks are restored' do
it 'tasks are active' do

View file

@ -8,10 +8,12 @@ describe ProjectCommentsController, type: :controller do
let(:user) { subject.current_user }
let(:team) { create :team, created_by: user }
let(:user_team) { create :user_team, team: team, user: user }
let(:user_project) { create :user_project, :owner, user: user }
let(:user_project) { create :user_project, user: user }
let(:project) do
create :project, team: team, user_projects: [user_project]
end
let(:owner_user_role) { create :owner_role }
let!(:user_assignment) { create :user_assignment, assignable: project, user: user, user_role: owner_user_role, assigned_by: user }
let(:project_comment) do
create :project_comment, project: project, user: user
end

View file

@ -54,11 +54,20 @@ describe ProjectsController, type: :controller do
end
end
let(:owner_user_role) { create :owner_role }
# rubocop:disable Security/Eval
# rubocop:disable Style/EvalWithLocation
(1..PROJECTS_CNT).each do |i|
let!("user_projects_#{i}") do
create :user_project, :owner, project: eval("project_#{i}"), user: user
create :user_project, project: eval("project_#{i}"), user: user
end
let!("user_assignments_#{i}") do
create :user_assignment,
assignable: eval("project_#{i}"),
user: user,
user_role: owner_user_role,
assigned_by: user
end
end
# rubocop:enable Security/Eval

View file

@ -10,7 +10,7 @@ describe ProtocolsController, type: :controller do
let!(:user_team) { create :user_team, :admin, user: user, team: team }
let(:project) { create :project, team: team, created_by: user }
let!(:user_project) do
create :user_project, :normal_user, user: user, project: project
create :user_project, user: user, project: project
end
let(:experiment) { create :experiment, project: project }
let(:my_module) { create :my_module, experiment: experiment }

View file

@ -8,10 +8,18 @@ describe ReportsController, type: :controller do
let(:user) { subject.current_user }
let!(:team) { create :team, created_by: user }
let!(:user_team) { create :user_team, team: team, user: user }
let(:user_project) { create :user_project, :owner, user: user }
let(:user_project) { create :user_project, user: user }
let(:project) do
create :project, team: team, user_projects: [user_project]
end
let(:owner_user_role) { create :owner_role }
let!(:user_assignment) do
create :user_assignment,
assignable: project,
user: user,
user_role: owner_user_role,
assigned_by: user
end
let(:report) do
create :report, user: user, project: project, team: team,
name: 'test repot A1', description: 'test description A1'

View file

@ -7,10 +7,18 @@ describe ResultAssetsController, type: :controller do
let(:user) { subject.current_user }
let!(:team) { create :team, :with_members }
let!(:user_project) { create :user_project, :owner, user: user }
let!(:user_project) { create :user_project, user: user }
let(:project) do
create :project, team: team, user_projects: [user_project]
end
let(:owner_user_role) { create :owner_role }
let!(:user_assignment) do
create :user_assignment,
assignable: project,
user: user,
user_role: owner_user_role,
assigned_by: user
end
let(:experiment) { create :experiment, project: project }
let(:task) { create :my_module, name: 'test task', experiment: experiment }
let(:result) do

View file

@ -7,10 +7,18 @@ describe ResultCommentsController, type: :controller do
let(:user) { subject.current_user }
let!(:team) { create :team, created_by: user, users: [user] }
let!(:user_project) { create :user_project, :owner, user: user }
let!(:user_project) { create :user_project, user: user }
let(:project) do
create :project, team: team, user_projects: [user_project]
end
let(:owner_user_role) { create :owner_role }
let!(:user_assignment) do
create :user_assignment,
assignable: project,
user: user,
user_role: owner_user_role,
assigned_by: user
end
let(:experiment) { create :experiment, project: project }
let(:task) { create :my_module, name: 'test task', experiment: experiment }
let(:result) do

View file

@ -7,10 +7,18 @@ describe ResultTablesController, type: :controller do
let(:user) { subject.current_user }
let!(:team) { create :team, created_by: user, users: [user] }
let!(:user_project) { create :user_project, :owner, user: user }
let!(:user_project) { create :user_project, user: user }
let(:project) do
create :project, team: team, user_projects: [user_project]
end
let(:owner_user_role) { create :owner_role }
let!(:user_assignment) do
create :user_assignment,
assignable: project,
user: user,
user_role: owner_user_role,
assigned_by: user
end
let(:experiment) { create :experiment, project: project }
let(:task) { create :my_module, name: 'test task', experiment: experiment }
let(:result) do

View file

@ -7,10 +7,18 @@ describe ResultTextsController, type: :controller do
let(:user) { subject.current_user }
let!(:team) { create :team, :with_members }
let!(:user_project) { create :user_project, :owner, user: user }
let!(:user_project) { create :user_project, user: user }
let(:project) do
create :project, team: team, user_projects: [user_project]
end
let(:owner_user_role) { create :owner_role }
let!(:user_assignment) do
create :user_assignment,
assignable: project,
user: user,
user_role: owner_user_role,
assigned_by: user
end
let(:experiment) { create :experiment, project: project }
let(:task) { create :my_module, name: 'test task', experiment: experiment }
let(:result) do

View file

@ -7,10 +7,18 @@ describe ResultsController, type: :controller do
let(:user) { subject.current_user }
let!(:team) { create :team, :with_members }
let!(:user_project) { create :user_project, :owner, user: user }
let!(:user_project) { create :user_project, user: user }
let(:project) do
create :project, team: team, user_projects: [user_project]
end
let(:owner_user_role) { create :owner_role }
let!(:user_assignment) do
create :user_assignment,
assignable: project,
user: user,
user_role: owner_user_role,
assigned_by: user
end
let(:experiment) { create :experiment, project: project }
let(:task) { create :my_module, name: 'test task', experiment: experiment }
let(:result) do

View file

@ -10,7 +10,15 @@ describe StepCommentsController, type: :controller do
let!(:user_team) { create :user_team, :admin, user: user, team: team }
let(:project) { create :project, team: team, created_by: user }
let!(:user_project) do
create :user_project, :normal_user, user: user, project: project
create :user_project, user: user, project: project
end
let(:normal_user_role) { create :normal_user_role }
let!(:user_assignment) do
create :user_assignment,
assignable: project,
user: user,
user_role: normal_user_role,
assigned_by: user
end
let(:experiment) { create :experiment, project: project }
let(:my_module) { create :my_module, experiment: experiment }

View file

@ -10,7 +10,15 @@ describe StepsController, type: :controller do
let!(:user_team) { create :user_team, :admin, user: user, team: team }
let(:project) { create :project, team: team, created_by: user }
let!(:user_project) do
create :user_project, :normal_user, user: user, project: project
create :user_project, user: user, project: project
end
let(:normal_user_role) { create :normal_user_role }
let!(:user_assignment) do
create :user_assignment,
assignable: project,
user: user,
user_role: normal_user_role,
assigned_by: user
end
let(:experiment) { create :experiment, project: project }
let(:my_module) { create :my_module, experiment: experiment }

View file

@ -10,7 +10,15 @@ describe TagsController, type: :controller do
let!(:user_team) { create :user_team, :admin, user: user, team: team }
let(:project) { create :project, team: team, created_by: user }
let!(:user_project) do
create :user_project, :normal_user, user: user, project: project
create :user_project, user: user, project: project
end
let(:normal_user_role) { create :normal_user_role }
let!(:user_assignment) do
create :user_assignment,
assignable: project,
user: user,
user_role: normal_user_role,
assigned_by: user
end
let(:experiment) { create :experiment, project: project }
let(:my_module) { create :my_module, experiment: experiment }

View file

@ -7,11 +7,12 @@ describe TeamsController, type: :controller do
let(:user) { subject.current_user }
let(:team) { create :team, created_by: user }
let!(:owner_role) { create :owner_role }
let!(:user_team) { create :user_team, :admin, user: user, team: team }
describe 'POST export_projects' do
let!(:first_project) { create :project, team: team }
let!(:second_project) { create :project, team: team }
let!(:first_project) { create :project, team: team, created_by: user }
let!(:second_project) { create :project, team: team, created_by: user }
let(:params) do
{
id: team.id,

View file

@ -10,7 +10,15 @@ describe UserMyModulesController, type: :controller do
let!(:user_team) { create :user_team, :admin, user: user, team: team }
let(:project) { create :project, team: team, created_by: user }
let!(:user_project) do
create :user_project, :owner, user: user, project: project
create :user_project, user: user, project: project
end
let(:owner_role) { create :owner_role }
let!(:user_assignment) do
create :user_assignment,
assignable: project,
user: user,
user_role: owner_role,
assigned_by: user
end
let(:experiment) { create :experiment, project: project }
let(:my_module) { create :my_module, experiment: experiment }

View file

@ -9,10 +9,18 @@ describe WopiController, type: :controller do
let(:user) { subject.current_user }
let!(:team) { create :team, created_by: user }
let(:user_team) { create :user_team, :admin, user: user, team: team }
let!(:user_project) { create :user_project, :owner, user: user }
let!(:user_project) { create :user_project, user: user }
let(:project) do
create :project, team: team, user_projects: [user_project]
end
let(:owner_role) { create :owner_role }
let!(:user_assignment) do
create :user_assignment,
assignable: project,
user: user,
user_role: owner_role,
assigned_by: user
end
let(:experiment) { create :experiment, project: project }
let(:my_module) { create :my_module, name: 'test task', experiment: experiment }
let(:result) do

View file

@ -19,6 +19,6 @@ RSpec.describe UserAssignment, type: :model do
it { should belong_to :assignable }
it { should belong_to :user }
it { should belong_to :user_role }
it { should belong_to(:assigned_by).class_name('User') }
it { should belong_to(:assigned_by).class_name('User').optional }
end
end

View file

@ -6,9 +6,6 @@ describe UserProject, type: :model do
let(:user_project_without_role) { build :user_project }
let(:user_project) { build :user_project, :owner }
it 'is invalid without role' do
expect(user_project_without_role).not_to be_valid
end
it 'is valid with role' do
expect(user_project).to be_valid
@ -19,7 +16,6 @@ describe UserProject, type: :model do
end
describe 'Database table' do
it { should have_db_column :role }
it { should have_db_column :user_id }
it { should have_db_column :project_id }
it { should have_db_column :created_at }
@ -34,7 +30,6 @@ describe UserProject, type: :model do
end
describe 'Should be a valid object' do
it { should validate_presence_of :role }
it { should validate_presence_of :user }
it { should validate_presence_of :project }
end

View file

@ -15,9 +15,10 @@ RSpec.describe UserRole, type: :model do
end
describe 'Relations' do
before { allow(subject).to receive(:predefined?).and_return(true) }
it { should have_many :user_assignments }
it { should belong_to :created_by }
it { should belong_to :last_modified_by }
it { should belong_to(:created_by).class_name('User').optional }
it { should belong_to(:last_modified_by).class_name('User').optional }
end
describe 'Should be a valid object' do

View file

@ -10,9 +10,15 @@ describe 'ResultPermissions' do
let(:result) { create :result, user: user, my_module: my_module }
let(:my_module) { create :my_module, experiment: experiment }
let(:experiment) { create :experiment, user: user }
let(:normal_user_role) { create :normal_user_role }
before do
create :user_project, :normal_user, user: user, project: experiment.project
create :user_project, user: user, project: experiment.project
create :user_assignment,
assignable: experiment.project,
user: user,
user_role: normal_user_role,
assigned_by: user
end
describe 'can_read_result?' do

View file

@ -14,6 +14,11 @@ RSpec.describe 'Api::V1::AssetsController', type: :request do
create(:user_team, user: @user, team: @team)
create(:user_project, :normal_user, user: @user, project: @project)
create :user_assignment,
assignable: @project,
user: @user,
user_role: create(:normal_user_role),
assigned_by: @user
@valid_headers =
{ 'Authorization': 'Bearer ' + generate_token(@user.id) }

View file

@ -14,6 +14,11 @@ RSpec.describe 'Api::V1::ChecklistsController', type: :request do
@checklist = create(:checklist, step: @step)
create(:user_team, user: @user, team: @team)
create(:user_project, :normal_user, user: @user, project: @project)
create :user_assignment,
assignable: @project,
user: @user,
user_role: create(:normal_user_role),
assigned_by: @user
@valid_headers = {
'Authorization': 'Bearer ' + generate_token(@user.id),

View file

@ -13,6 +13,11 @@ RSpec.describe 'Api::V1::ChecklistsController', type: :request do
@step = create(:step, protocol: @protocol)
create(:user_team, user: @user, team: @team)
create(:user_project, :normal_user, user: @user, project: @project)
create :user_assignment,
assignable: @project,
user: @user,
user_role: create(:normal_user_role),
assigned_by: @user
@valid_headers = {
'Authorization': 'Bearer ' + generate_token(@user.id),

View file

@ -13,6 +13,12 @@ RSpec.describe "Api::V1::ExperimentsController", type: :request do
create(:user_project, :owner, user: @user, project: @valid_project)
create :user_assignment,
assignable: @valid_project,
user: @user,
user_role: create(:owner_role),
assigned_by: @user
@unaccessible_project = create(:project, name: Faker::Name.unique.name,
created_by: @user, team: @teams.second)

View file

@ -12,7 +12,7 @@ RSpec.describe "Api::V1::ProjectUserAssignmentsController", type: :request do
@own_project = create(:project, name: Faker::Name.unique.name, created_by: @user, team: @team)
@invalid_project =
create(:project, name: Faker::Name.unique.name, created_by: @another_user, team: @team, visibility: :hidden)
create(:user_project, role: :owner, user: @user, project: @own_project)
create(:user_project, user: @user, project: @own_project)
create :user_assignment, assignable: @own_project, user: @user, user_role: create(:owner_role), assigned_by: @user
@normal_user_role = create :normal_user_role

View file

@ -7,14 +7,19 @@ RSpec.describe 'Api::V1::ProjectsController', type: :request do
@user = create(:user)
@teams = create_list(:team, 2, created_by: @user)
create(:user_team, user: @user, team: @teams.first, role: 2)
owner_role = create(:owner_role)
# valid_projects
create(:user_project, :owner,
user: @user,
project: create(:project, name: Faker::Name.unique.name, created_by: @user, team: @teams.first))
create(:user_project, :owner,
user: @user,
project: create(:project, name: Faker::Name.unique.name, created_by: @user, team: @teams.first))
2.times do
project = create(:project, name: Faker::Name.unique.name, created_by: @user, team: @teams.first)
create :user_project, :owner,
user: @user,
project: project
create :user_assignment,
assignable: project,
user: @user,
user_role: owner_role,
assigned_by: @user
end
# unaccessable_projects
create(:project, name: Faker::Name.unique.name,

View file

@ -11,7 +11,12 @@ RSpec.describe 'Api::V1::ResultsController', type: :request do
@valid_project = create(:project, name: Faker::Name.unique.name,
created_by: @user, team: @teams.first)
create(:user_project, user: @user, project: @valid_project, role: 0)
create(:user_project, user: @user, project: @valid_project)
create :user_assignment,
assignable: @valid_project,
user: @user,
user_role: create(:owner_role),
assigned_by: @user
@unaccessible_project = create(:project, name: Faker::Name.unique.name,
created_by: @user, team: @teams.second)

View file

@ -10,7 +10,12 @@ RSpec.describe 'Api::V1::StepsController', type: :request do
@experiment = create(:experiment, :with_tasks, project: @project)
@task = @experiment.my_modules.first
create(:user_team, user: @user, team: @team)
create(:user_project, :normal_user, user: @user, project: @project)
create(:user_project, user: @user, project: @project)
create :user_assignment,
assignable: @project,
user: @user,
user_role: create(:normal_user_role),
assigned_by: @user
@valid_headers =
{ 'Authorization': 'Bearer ' + generate_token(@user.id) }

View file

@ -13,6 +13,11 @@ RSpec.describe 'Api::V1::TablesController', type: :request do
@step = create(:step, protocol: @protocol)
create(:user_team, user: @user, team: @team)
create(:user_project, :normal_user, user: @user, project: @project)
create :user_assignment,
assignable: @project,
user: @user,
user_role: create(:normal_user_role),
assigned_by: @user
@valid_headers = {
'Authorization': 'Bearer ' + generate_token(@user.id),

View file

@ -145,6 +145,11 @@ RSpec.describe 'Api::V1::TasksController', type: :request do
describe 'POST tasks, #create' do
before :all do
create :user_project, :normal_user, user: @user, project: @valid_project
create :user_assignment,
assignable: @valid_project,
user: @user,
user_role: create(:normal_user_role),
assigned_by: @user
@valid_headers['Content-Type'] = 'application/json'
end

View file

@ -10,7 +10,14 @@ describe SmartAnnotations::PermissionEval do
let(:another_team) { create :team }
let!(:user_team) { create :user_team, user: user, team: team, role: :admin }
let(:project) { create :project, name: 'my project', team: team }
let!(:user_project) { create :user_project, :owner, project: project, user: user }
let!(:user_project) { create :user_project, project: project, user: user }
let!(:user_assignment) do
create :user_assignment,
assignable: project,
user: user,
user_role: create(:owner_role),
assigned_by: user
end
let(:experiment) do
create :experiment, name: 'my experiment',
project: project,

View file

@ -8,7 +8,14 @@ describe SmartAnnotations::TagToHtml do
let!(:user_team) { create :user_team, user: user, team: team, role: 2 }
let!(:project) { create :project, name: 'my project', team: team }
let!(:user_project) do
create :user_project, project: project, user: user, role: 0
create :user_project, project: project, user: user
end
let!(:user_assignment) do
create :user_assignment,
assignable: project,
user: user,
user_role: create(:owner_role),
assigned_by: user
end
let(:text) do
"My annotation of [#my project~prj~#{project.id.base62_encode}]"