require 'spec_helper'

describe 'processOwnerAccounting.php' do
  before :all do
    @devbox = DevBox.instance
    @script_name = 'processOwnerAccounting.php'
  end

  context 'with wrong params' do
    it 'requires a Month and a Year' do
      output = @devbox.run_acc_script(@script_name)
      expect(output).to include('Params Month and Year are required')

      output = @devbox.run_acc_script("#{@script_name} -y 2018")
      expect(output).to include('Params Month and Year are required')

      output = @devbox.run_acc_script("#{@script_name} -m 5")
      expect(output).to include('Params Month and Year are required')
    end

    it 'refuses any extra params' do
      output = @devbox.run_acc_script("#{@script_name} -m 5 -y 2018 -e extra_param")
      expect(output).to include("Usage: #{@script_name}")
    end
  end

  context 'with right params' do
    before :all do
      @conf = ConfigHelper.instance
      @accounting_db = DataBase::AccountingDB.new
      @period_id = @accounting_db.acc_period_id
      # Cleaning up owner_accounting table for period_id
      @accounting_db.delete_owner_accounting(@period_id)
      @devbox.run_acc_script("#{@script_name} -m #{@conf[:accounting_month]} -y #{@conf[:accounting_year]}")
    end

    it 'inserts new data into owner_accounting table for the given period' do
      expect(@accounting_db.get_owner_accounting(@period_id).count).to be > 100
    end
  end
end
