Files
timeoverflow/spec/controllers/statistics_controller_spec.rb
2025-01-02 17:44:46 +01:00

53 lines
1.6 KiB
Ruby

RSpec.describe StatisticsController do
let(:organization) { Fabricate(:organization) }
let(:user) { Fabricate(:user, date_of_birth: '1980-1-1', gender: 'others') }
let(:member) { Fabricate(:member, organization: organization, user: user) }
before(:each) { login(member.user) }
describe 'GET #all_transfers' do
it 'populates all transfers from current organization' do
transfer = Fabricate(:transfer, source: organization.account, destination: member.account)
transfer2 = Fabricate(:transfer)
get :all_transfers
expect(assigns(:transfers)).to eq([transfer])
end
end
describe 'GET #global_activity' do
it 'populates some variables' do
2.times { Fabricate(:transfer, source: organization.account, destination: member.account) }
get :global_activity
expect(assigns(:num_swaps)).to eq(2)
expect(assigns(:total_hours)).to eq(20)
end
end
describe 'GET #type_swaps' do
it 'populates offers variable' do
category = Fabricate(:category)
Fabricate(:offer, organization: organization, user: member.user, category: category, tag_list: ["foo"])
Fabricate(:transfer, source: organization.account, destination: member.account, post: Offer.all.sample)
get :type_swaps
expect(assigns(:offers)).to eq([
[category.name, "foo", 10, 1, 1.0]
])
end
end
describe 'GET #demographics' do
it 'populates age_counts and gender_counts variables' do
get :demographics
expect(assigns(:age_counts)).to eq({ "45-54" => 1 })
expect(assigns(:gender_counts)).to eq({ "Otro" => 1 })
end
end
end