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

60 lines
1.8 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
describe RepositoryStockValuesController, type: :controller do
before :all do
ApplicationSettings.instance.update(
values: ApplicationSettings.instance.values.merge({"stock_management_enabled" => true})
)
end
login_user
let!(:user) { controller.current_user }
let!(:team) { create :team, created_by: user }
let!(:repository) { create :repository, team: team, created_by: user }
let(:repository_column) do
create :repository_column, :stock_type, created_by: user, repository: repository
end
let!(:repository_row) do
create :repository_row, repository: repository,
created_by: user,
last_modified_by: user
end
let!(:repository_stock_unit_item) {create :repository_stock_unit_item, created_by: user,
last_modified_by: user,
repository_column: repository_column}
describe 'create' do
let(:params) do {
repository_stock_value: {
amount: 10,
unit_item_id: repository_stock_unit_item.id,
comment: 'test',
low_stock_threshold: ''
},
operator: 'set',
change_amount: 0,
repository_id: repository.id,
id: repository_row.id
}
end
let(:action) { post :create_or_update, params: params, format: :json }
let(:action1) { post :create_or_update, params: params, format: :json }
it 'Create stock value' do
expect { action }.to change(RepositoryLedgerRecord, :count).by(1)
end
it 'Ledger immutability' do
action
expect { action1 }
.to (change(RepositoryLedgerRecord, :count).by(1)
.and(change(RepositoryStockValue, :count).by(0)))
end
end
end