diff --git a/app/models/account_activity.rb b/app/models/account_activity.rb index c6523be33..3bc21a0d8 100644 --- a/app/models/account_activity.rb +++ b/app/models/account_activity.rb @@ -2,10 +2,10 @@ require 'csv' class AccountActivity < ActiveRecord::Base include Versions - belongs_to :account + belongs_to :account, required: true belongs_to :bank_transaction belongs_to :invoice - + belongs_to :price, class_name: 'Billing::Price' CREATE = 'create' RENEW = 'renew' diff --git a/app/models/billing/price.rb b/app/models/billing/price.rb index c12cffffe..7924bbd6c 100644 --- a/app/models/billing/price.rb +++ b/app/models/billing/price.rb @@ -6,6 +6,7 @@ module Billing self.auto_html5_validation = false belongs_to :zone, class_name: 'DNS::Zone', required: true + has_many :account_activities validates :price, :valid_from, :operation_category, :duration, presence: true validates :operation_category, inclusion: { in: Proc.new { |price| price.class.operation_categories } } diff --git a/spec/models/account_activity_spec.rb b/spec/models/account_activity_spec.rb new file mode 100644 index 000000000..59e88c98b --- /dev/null +++ b/spec/models/account_activity_spec.rb @@ -0,0 +1,13 @@ +require 'rails_helper' + +RSpec.describe AccountActivity do + describe 'account validation', db: false do + subject(:account_activity) { described_class.new } + + it 'rejects absent' do + account_activity.account = nil + account_activity.validate + expect(account_activity.errors).to have_key(:account) + end + end +end