Remove default values for some stat methods’ arguments

This commit is contained in:
gregoirenovel 2017-07-17 15:12:05 +02:00
parent 20b4c7ce6f
commit 6f2c63c094
2 changed files with 20 additions and 62 deletions

View file

@ -36,7 +36,7 @@ class StatsController < ApplicationController
private
def last_four_months_hash(association, date_attribute = :created_at)
def last_four_months_hash(association, date_attribute)
min_date = 3.months.ago.beginning_of_month.to_date
if administration_signed_in?
max_date = Time.now.to_date
@ -53,7 +53,7 @@ class StatsController < ApplicationController
.map { |e| [I18n.l(e.first, format: "%B %Y"), e.last] }
end
def cumulative_hash(association, date_attribute = :created_at)
def cumulative_hash(association, date_attribute)
sum = 0
association
.group("DATE_TRUNC('month', #{date_attribute.to_s})")

View file

@ -2,35 +2,13 @@ require 'spec_helper'
describe StatsController, type: :controller do
describe "#last_four_months_hash" do
context "without a date attribute" do
before do
FactoryGirl.create(:procedure, :created_at => 6.months.ago)
FactoryGirl.create(:procedure, :created_at => 62.days.ago)
FactoryGirl.create(:procedure, :created_at => 62.days.ago)
FactoryGirl.create(:procedure, :created_at => 31.days.ago)
@controller = StatsController.new
allow(@controller).to receive(:administration_signed_in?).and_return(false)
end
let (:association) { Procedure.all }
subject { @controller.send(:last_four_months_hash, association) }
it { expect(subject).to eq([
[I18n.l(62.days.ago.beginning_of_month, format: "%B %Y"), 2],
[I18n.l(31.days.ago.beginning_of_month, format: "%B %Y"), 1]
])
}
end
context "with a date attribute" do
context "while a regular user is logged in" do
before do
FactoryGirl.create(:procedure, :created_at => 6.months.ago, :updated_at => 6.months.ago)
FactoryGirl.create(:procedure, :created_at => 2.months.ago, :updated_at => 62.days.ago)
FactoryGirl.create(:procedure, :created_at => 2.months.ago, :updated_at => 62.days.ago)
FactoryGirl.create(:procedure, :created_at => 2.months.ago, :updated_at => 31.days.ago)
FactoryGirl.create(:procedure, :created_at => 2.months.ago, :updated_at => 1.day.ago)
@controller = StatsController.new
allow(@controller).to receive(:administration_signed_in?).and_return(false)
@ -49,10 +27,10 @@ describe StatsController, type: :controller do
context "while a super admin is logged in" do
before do
FactoryGirl.create(:procedure, :created_at => 6.months.ago)
FactoryGirl.create(:procedure, :created_at => 45.days.ago)
FactoryGirl.create(:procedure, :created_at => 1.day.ago)
FactoryGirl.create(:procedure, :created_at => 1.day.ago)
FactoryGirl.create(:procedure, :updated_at => 6.months.ago)
FactoryGirl.create(:procedure, :updated_at => 45.days.ago)
FactoryGirl.create(:procedure, :updated_at => 1.day.ago)
FactoryGirl.create(:procedure, :updated_at => 1.day.ago)
@controller = StatsController.new
@ -61,7 +39,7 @@ describe StatsController, type: :controller do
let (:association) { Procedure.all }
subject { @controller.send(:last_four_months_hash, association) }
subject { @controller.send(:last_four_months_hash, association, :updated_at) }
it { expect(subject).to eq([
[I18n.l(45.days.ago.beginning_of_month, format: "%B %Y"), 1],
@ -72,41 +50,21 @@ describe StatsController, type: :controller do
end
describe '#cumulative_hash' do
context "without a date attribute" do
before do
FactoryGirl.create(:procedure, :created_at => 45.days.ago)
FactoryGirl.create(:procedure, :created_at => 15.days.ago)
FactoryGirl.create(:procedure, :created_at => 15.days.ago)
end
let (:association) { Procedure.all }
subject { StatsController.new.send(:cumulative_hash, association) }
it { expect(subject).to eq({
45.days.ago.beginning_of_month => 1,
15.days.ago.beginning_of_month => 3
})
}
before do
FactoryGirl.create(:procedure, :created_at => 45.days.ago, :updated_at => 20.days.ago)
FactoryGirl.create(:procedure, :created_at => 15.days.ago, :updated_at => 20.days.ago)
FactoryGirl.create(:procedure, :created_at => 15.days.ago, :updated_at => 10.days.ago)
end
context "with a date attribute" do
before do
FactoryGirl.create(:procedure, :created_at => 45.days.ago, :updated_at => 20.days.ago)
FactoryGirl.create(:procedure, :created_at => 15.days.ago, :updated_at => 20.days.ago)
FactoryGirl.create(:procedure, :created_at => 15.days.ago, :updated_at => 10.days.ago)
end
let (:association) { Procedure.all }
let (:association) { Procedure.all }
subject { StatsController.new.send(:cumulative_hash, association, :updated_at) }
subject { StatsController.new.send(:cumulative_hash, association, :updated_at) }
it { expect(subject).to eq({
20.days.ago.beginning_of_month => 2,
10.days.ago.beginning_of_month => 3
})
}
end
it { expect(subject).to eq({
20.days.ago.beginning_of_month => 2,
10.days.ago.beginning_of_month => 3
})
}
end
describe "#procedures_count_per_administrateur" do