Fix failing tests

This commit is contained in:
Urban Rotnik 2019-03-13 09:06:48 +01:00
parent b6a8556601
commit c65d1af18d
17 changed files with 114 additions and 45 deletions

View file

@ -5,7 +5,7 @@ require 'rails_helper'
describe ExperimentsController, type: :controller do describe ExperimentsController, type: :controller do
login_user login_user
describe '#update' do describe 'PUT update' do
let!(:user) { controller.current_user } let!(:user) { controller.current_user }
let!(:team) { create :team, created_by: user, users: [user] } let!(:team) { create :team, created_by: user, users: [user] }
let!(:project) { create :project, team: team } let!(:project) { create :project, team: team }
@ -13,6 +13,7 @@ describe ExperimentsController, type: :controller do
create :user_project, :owner, user: user, project: project create :user_project, :owner, user: user, project: project
end end
let(:experiment) { create :experiment, project: project } let(:experiment) { create :experiment, project: project }
let(:action) { put :update, params: params }
context 'when editing experiment' do context 'when editing experiment' do
let(:params) do let(:params) do
@ -27,7 +28,12 @@ describe ExperimentsController, type: :controller do
.to(receive(:call) .to(receive(:call)
.with(hash_including(activity_type: :edit_experiment))) .with(hash_including(activity_type: :edit_experiment)))
put :update, params: params action
end
it 'adds activity in DB' do
expect { action }
.to(change { Activity.count })
end end
end end
@ -40,7 +46,7 @@ describe ExperimentsController, type: :controller do
project: project project: project
end end
let(:archived_params) do let(:params) do
{ {
id: archived_experiment.id, id: archived_experiment.id,
experiment: { archived: false } experiment: { archived: false }
@ -52,7 +58,12 @@ describe ExperimentsController, type: :controller do
.to(receive(:call) .to(receive(:call)
.with(hash_including(activity_type: :restore_experiment))) .with(hash_including(activity_type: :restore_experiment)))
put :update, params: archived_params action
end
it 'adds activity in DB' do
expect { action }
.to(change { Activity.count })
end end
end end
end end

View file

@ -108,6 +108,7 @@ describe ProjectsController, type: :controller do
{ project: { name: 'test project A1', team_id: team.id, { project: { name: 'test project A1', team_id: team.id,
visibility: 'visible', archived: false } } visibility: 'visible', archived: false } }
end end
let(:action) { post :create, params: params, format: :json }
it 'returns success response, then unprocessable_entity on second run' do it 'returns success response, then unprocessable_entity on second run' do
get :create, params: params, format: :json get :create, params: params, format: :json
@ -118,10 +119,17 @@ describe ProjectsController, type: :controller do
expect(response.content_type).to eq 'application/json' expect(response.content_type).to eq 'application/json'
end end
it 'never calls create activity service' do it 'calls create activity for creating project' do
expect(Activities::CreateActivityService).to receive(:call) expect(Activities::CreateActivityService)
.to(receive(:call)
.with(hash_including(activity_type: :create_project)))
post :create, params: params, format: :json action
end
it 'adds activity in DB' do
expect { action }
.to(change { Activity.count })
end end
end end
end end

View file

@ -10,6 +10,7 @@ describe ProtocolsController, type: :controller do
let!(:user_team) { create :user_team, :admin, user: user, team: team } let!(:user_team) { create :user_team, :admin, user: user, team: team }
describe 'POST create' do describe 'POST create' do
let(:action) { post :create, params: params, format: :json }
let(:params) do let(:params) do
{ {
protocol: { protocol: {
@ -24,11 +25,11 @@ describe ProtocolsController, type: :controller do
.with(hash_including(activity_type: .with(hash_including(activity_type:
:create_protocol_in_repository))) :create_protocol_in_repository)))
post :create, params: params, format: :json action
end end
it 'adds activity in DB' do it 'adds activity in DB' do
expect { post :create, params: params, format: :json } expect { action }
.to(change { Activity.count }) .to(change { Activity.count })
end end
end end

View file

@ -14,6 +14,7 @@ describe RepositoryColumnsController, type: :controller do
end end
describe 'POST create' do describe 'POST create' do
let(:action) { post :create, params: params, format: :json }
let(:params) do let(:params) do
{ {
repository_id: repository.id, repository_id: repository.id,
@ -29,11 +30,17 @@ describe RepositoryColumnsController, type: :controller do
.to(receive(:call) .to(receive(:call)
.with(hash_including(activity_type: :create_column_inventory))) .with(hash_including(activity_type: :create_column_inventory)))
post :create, params: params, format: :json action
end
it 'adds activity in DB' do
expect { action }
.to(change { Activity.count })
end end
end end
describe 'PUT update' do describe 'PUT update' do
let(:action) { put :update, params: params, format: :json }
let(:params) do let(:params) do
{ {
id: repository_column.id, id: repository_column.id,
@ -49,11 +56,17 @@ describe RepositoryColumnsController, type: :controller do
.to(receive(:call) .to(receive(:call)
.with(hash_including(activity_type: :edit_column_inventory))) .with(hash_including(activity_type: :edit_column_inventory)))
post :update, params: params, format: :json action
end
it 'adds activity in DB' do
expect { action }
.to(change { Activity.count })
end end
end end
describe 'DELETE destroy' do describe 'DELETE destroy' do
let(:action) { delete :destroy, params: params, format: :json }
let(:params) do let(:params) do
{ repository_id: repository.id, id: repository_column.id } { repository_id: repository.id, id: repository_column.id }
end end
@ -63,7 +76,12 @@ describe RepositoryColumnsController, type: :controller do
.to(receive(:call) .to(receive(:call)
.with(hash_including(activity_type: :delete_column_inventory))) .with(hash_including(activity_type: :delete_column_inventory)))
delete :destroy, params: params, format: :json action
end
it 'adds activity in DB' do
expect { action }
.to(change { Activity.count })
end end
end end
end end

View file

@ -127,6 +127,7 @@ describe RepositoryRowsController, type: :controller do
end end
describe 'POST create' do describe 'POST create' do
let(:action) { post :create, params: params, format: :json }
let(:params) do let(:params) do
{ repository_id: repository.id, repository_row_name: 'row_name' } { repository_id: repository.id, repository_row_name: 'row_name' }
end end
@ -136,11 +137,17 @@ describe RepositoryRowsController, type: :controller do
.to(receive(:call) .to(receive(:call)
.with(hash_including(activity_type: :create_item_inventory))) .with(hash_including(activity_type: :create_item_inventory)))
post :create, params: params, format: :json action
end
it 'adds activity in DB' do
expect { action }
.to(change { Activity.count })
end end
end end
describe 'PUT update' do describe 'PUT update' do
let(:action) { put :update, params: params, format: :json }
let(:params) do let(:params) do
{ {
repository_id: repository.id, repository_id: repository.id,
@ -154,11 +161,17 @@ describe RepositoryRowsController, type: :controller do
.to(receive(:call) .to(receive(:call)
.with(hash_including(activity_type: :edit_item_inventory))) .with(hash_including(activity_type: :edit_item_inventory)))
put :update, params: params, format: :json action
end
it 'adds activity in DB' do
expect { action }
.to(change { Activity.count })
end end
end end
describe 'POST delete_records' do describe 'POST delete_records' do
let(:action) { post :delete_records, params: params, format: :json }
let(:params) do let(:params) do
{ repository_id: repository.id, selected_rows: [repository_row.id] } { repository_id: repository.id, selected_rows: [repository_row.id] }
end end
@ -168,7 +181,12 @@ describe RepositoryRowsController, type: :controller do
.to(receive(:call) .to(receive(:call)
.with(hash_including(activity_type: :delete_item_inventory))) .with(hash_including(activity_type: :delete_item_inventory)))
post :delete_records, params: params, format: :json action
end
it 'adds activity in DB' do
expect { action }
.to(change { Activity.count })
end end
end end
end end

View file

@ -12,10 +12,10 @@ describe Users::Settings::UserTeamsController, type: :controller do
let!(:another_user_team) do let!(:another_user_team) do
create :user_team, :normal_user, user: another_user, team: team create :user_team, :normal_user, user: another_user, team: team
end end
describe 'POST invite_users' do describe 'DELETE destroy' do
let(:params) do let(:params) do
{ {
id: another_user.id id: another_user_team.id
} }
end end
let(:action) { delete :destroy, params: params, format: :json } let(:action) { delete :destroy, params: params, format: :json }
@ -44,7 +44,7 @@ describe Users::Settings::UserTeamsController, type: :controller do
describe 'PUT update' do describe 'PUT update' do
let(:params) do let(:params) do
{ {
id: another_user.id, id: another_user_team.id,
user_team: { user_team: {
role: 'admin' role: 'admin'
} }

View file

@ -10,7 +10,7 @@ FactoryBot.define do
created_by { user } created_by { user }
last_modified_by { user } last_modified_by { user }
project { create :project, created_by: user } project { create :project, created_by: user }
trait :experiment_with_tasks do trait :with_tasks do
after(:create) do |e| after(:create) do |e|
create_list :my_module, 3, :with_tag, experiment: e create_list :my_module, 3, :with_tag, experiment: e
end end

View file

@ -86,7 +86,7 @@ describe Experiment, type: :model do
end end
describe '.update_canvas' do describe '.update_canvas' do
let(:experiment) { create :experiment, :experiment_with_tasks } let(:experiment) { create :experiment, :with_tasks }
let(:user) { experiment.created_by } let(:user) { experiment.created_by }
context 'when renaming tasks' do context 'when renaming tasks' do

View file

@ -28,12 +28,12 @@ describe RepositoryAssetValue, type: :model do
describe '#data' do describe '#data' do
let!(:repository) { create :repository } let!(:repository) { create :repository }
let!(:repository_row) { create :repository_row, repository: repository }
let!(:repository_column) do let!(:repository_column) do
create :repository_column, create :repository_column,
name: 'My column', data_type: :RepositoryAssetValue,
data_type: :RepositoryAssetValue repository: repository
end end
let!(:repository_row) { create :repository_row, name: 'My row' }
it 'returns the asset' do it 'returns the asset' do
asset = create :asset, file_file_name: 'my file' asset = create :asset, file_file_name: 'my file'

View file

@ -31,10 +31,10 @@ describe RepositoryColumn, type: :model do
should validate_length_of(:name).is_at_most(Constants::NAME_MAX_LENGTH) should validate_length_of(:name).is_at_most(Constants::NAME_MAX_LENGTH)
end end
it 'have uniq name scoped to repository' do it 'have uniq name scoped to repository' do
create :repository_column, name: 'Repo One' r = create :repository_column, name: 'Repo One'
column_two = build :repository_column, name: 'Repo One' ct = build :repository_column, name: 'Repo One', repository: r.repository
expect(column_two).to_not be_valid expect(ct).to_not be_valid
end end
end end
end end

View file

@ -21,10 +21,14 @@ RSpec.describe RepositoryListValue, type: :model do
describe '#formatted' do describe '#formatted' do
let!(:repository) { create :repository } let!(:repository) { create :repository }
let!(:repository_column) do let!(:repository_column) do
create :repository_column, name: 'My column', create :repository_column,
data_type: :RepositoryListValue name: 'My column',
data_type: :RepositoryListValue,
repository: repository
end
let!(:repository_row) do
create :repository_row, name: 'My row', repository: repository
end end
let!(:repository_row) { create :repository_row, name: 'My row' }
let!(:repository_list_value) do let!(:repository_list_value) do
build :repository_list_value, repository_cell_attributes: { build :repository_list_value, repository_cell_attributes: {
repository_column: repository_column, repository_column: repository_column,
@ -46,10 +50,14 @@ RSpec.describe RepositoryListValue, type: :model do
describe '#data' do describe '#data' do
let!(:repository) { create :repository } let!(:repository) { create :repository }
let!(:repository_column) do let!(:repository_column) do
create :repository_column, name: 'My column', create :repository_column,
data_type: :RepositoryListValue name: 'My column',
data_type: :RepositoryListValue,
repository: repository
end
let!(:repository_row) do
create :repository_row, name: 'My row', repository: repository
end end
let!(:repository_row) { create :repository_row, name: 'My row' }
let!(:repository_list_value) do let!(:repository_list_value) do
build :repository_list_value, repository_cell_attributes: { build :repository_list_value, repository_cell_attributes: {
repository_column: repository_column, repository_column: repository_column,

View file

@ -28,16 +28,17 @@ describe Repository, type: :model do
it do it do
should validate_length_of(:name).is_at_most(Constants::NAME_MAX_LENGTH) should validate_length_of(:name).is_at_most(Constants::NAME_MAX_LENGTH)
end end
let(:team) { create :team }
it 'should have uniq name scoped to team' do it 'should have uniq name scoped to team' do
create :repository, name: 'Repository One' create :repository, name: 'Repository One', team: team
repo = build :repository, name: 'Repository One' repo = build :repository, name: 'Repository One', team: team
expect(repo).to_not be_valid expect(repo).to_not be_valid
end end
it 'should have uniq name scoped to team calse insensitive' do it 'should have uniq name scoped to team calse insensitive' do
create :repository, name: 'Repository One' create :repository, name: 'Repository One', team: team
repo = build :repository, name: 'REPOSITORY ONE' repo = build :repository, name: 'REPOSITORY ONE', team: team
expect(repo).to_not be_valid expect(repo).to_not be_valid
end end
end end

View file

@ -4,7 +4,7 @@ describe ClientApi::UserTeamService do
let(:team_one) { create :team } let(:team_one) { create :team }
let(:user_one) { create :user, email: Faker::Internet.email } let(:user_one) { create :user, email: Faker::Internet.email }
let(:user_two) { create :user, email: Faker::Internet.email } let(:user_two) { create :user, email: Faker::Internet.email }
let(:user_team) { create :user_team, user: user_one, team: team_one } let(:user_team) { create :user_team, :admin, user: user_one, team: team_one }
it 'should raise ClientApi::CustomUserTeamError if user is not assigned' do it 'should raise ClientApi::CustomUserTeamError if user is not assigned' do
expect { expect {
@ -42,7 +42,7 @@ describe ClientApi::UserTeamService do
end end
it 'should destroy the user_team relation' do it 'should destroy the user_team relation' do
create :user_team, team: team_one, user: user_one create :user_team, :admin, team: team_one, user: user_one
new_user_team = create :user_team, team: team_one, user: user_two new_user_team = create :user_team, team: team_one, user: user_two
ut_service = ClientApi::UserTeamService.new( ut_service = ClientApi::UserTeamService.new(
team_id: team_one.id, team_id: team_one.id,
@ -55,7 +55,7 @@ describe ClientApi::UserTeamService do
it 'should assign a new owner to the team' do it 'should assign a new owner to the team' do
user_team_one = create :user_team, team: team_one, user: user_one user_team_one = create :user_team, team: team_one, user: user_one
create :user_team, team: team_one, user: user_two create :user_team, :admin, team: team_one, user: user_two
ut_service = ClientApi::UserTeamService.new( ut_service = ClientApi::UserTeamService.new(
team_id: team_one.id, team_id: team_one.id,
user_team_id: user_team_one.id, user_team_id: user_team_one.id,
@ -95,7 +95,7 @@ describe ClientApi::UserTeamService do
it 'should raise ClientApi::CustomUserTeamError if is the last ' \ it 'should raise ClientApi::CustomUserTeamError if is the last ' \
'admin on the team' do 'admin on the team' do
user_team = create :user_team, team: team_one, user: user_one user_team = create :user_team, :admin, team: team_one, user: user_one
ut_service = ClientApi::UserTeamService.new( ut_service = ClientApi::UserTeamService.new(
user: user_one, user: user_one,
team_id: team_one.id, team_id: team_one.id,

View file

@ -13,7 +13,7 @@ describe Experiments::CopyExperimentAsTemplateService do
create :project, team: team, user_projects: [user_project] create :project, team: team, user_projects: [user_project]
end end
let(:experiment) do let(:experiment) do
create :experiment_with_tasks, name: 'MyExp', project: project create :experiment, :with_tasks, name: 'MyExp', project: project
end end
let(:user) { create :user } let(:user) { create :user }
let(:service_call) do let(:service_call) do

View file

@ -3,7 +3,7 @@
require 'rails_helper' require 'rails_helper'
describe Experiments::GenerateWorkflowImageService do describe Experiments::GenerateWorkflowImageService do
let(:experiment) { create :experiment_with_tasks } let(:experiment) { create :experiment, :with_tasks }
let(:params) { { experiment_id: experiment.id } } let(:params) { { experiment_id: experiment.id } }
context 'when succeed' do context 'when succeed' do

View file

@ -11,7 +11,7 @@ describe Experiments::MoveToProjectService do
create :project, team: team, user_projects: [user_project2] create :project, team: team, user_projects: [user_project2]
end end
let(:experiment) do let(:experiment) do
create :experiment_with_tasks, name: 'MyExp', project: project create :experiment, :with_tasks, name: 'MyExp', project: project
end end
let(:user) { create :user } let(:user) { create :user }
let(:user_project2) { create :user_project, :normal_user, user: user } let(:user_project2) { create :user_project, :normal_user, user: user }

View file

@ -1,5 +1,7 @@
# frozen_string_literal: true # frozen_string_literal: true
require 'rails_helper'
describe RepositoryDatatableService do describe RepositoryDatatableService do
let!(:team) { create :team } let!(:team) { create :team }
let!(:user) { create :user, email: 'user_one@asdf.com' } let!(:user) { create :user, email: 'user_one@asdf.com' }
@ -9,8 +11,10 @@ describe RepositoryDatatableService do
team: team team: team
end end
let!(:repository_column) do let!(:repository_column) do
create :repository_column, name: 'My column', create :repository_column,
data_type: :RepositoryListValue name: 'My column',
data_type: :RepositoryListValue,
repository: repository
end end
let!(:repository_state) do let!(:repository_state) do
RepositoryTableStateService.new(user, repository).create_default_state RepositoryTableStateService.new(user, repository).create_default_state