scinote-web/spec/models/my_module_repository_row_spec.rb

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_id: user.id
}
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