scinote-web/spec/models/my_module_repository_row_spec.rb
ajugo 1c21e11510
Stock management test [SCI-6420] (#3946)
* Initial test for stock management

* Repository stock values adding [does not work] SCI-6420

* Fix typos SCI-6420

* Fix test [SCI-6420]

* Test changes [SCI-6402]

* Remove locking test [SCI-6420]

* Remove lock [SCI-6420]

* Remove serializer [SCI-6420]

* Fix stock test and add ledger creation on consume [SCI-6420]
2022-04-15 12:23:47 +02:00

52 lines
1.8 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
describe MyModuleRepositoryRow, type: :model do
let(:my_module_repository_row) { build :mm_repository_row }
let(:user) { create :user }
let(:repository_stock_value) { create :repository_stock_value }
let(:repository_row) { create :repository_row, repository_stock_value: repository_stock_value }
let(:my_module_repository_row_stock) { create :mm_repository_row,
repository_row: repository_row,
assigned_by: user,
last_modified_by: user
}
it 'is valid' do
expect(my_module_repository_row).to be_valid
end
it 'should be of class MyModuleRepositoryRow' do
expect(subject.class).to eq MyModuleRepositoryRow
end
describe 'Database table' do
it { should have_db_column :id }
it { should have_db_column :repository_row_id }
it { should have_db_column :repository_stock_unit_item_id }
it { should have_db_column :stock_consumption }
it { should have_db_column :my_module_id }
it { should have_db_column :assigned_by_id }
it { should have_db_column :created_at }
it { should have_db_column :updated_at }
end
describe 'Relations' do
it { should belong_to(:my_module) }
it { should belong_to(:repository_stock_unit_item).optional }
it { should belong_to(:assigned_by).class_name('User').optional }
it { should belong_to(:repository_row) }
end
describe 'Repository ledger record' do
it 'Ledger creation on changed consumption' do
my_module_repository_row_stock.stock_consumption = 10.0
expect { my_module_repository_row_stock.save! }
.to change(RepositoryLedgerRecord, :count).by(1)
end
end
end