Files
nairobi/spec/requests/dashboard/supports_spec.rb
Juan Salvador Pérez García 0bd381aa5e Enhancements and bugfixing
FIxed issue in last commit: supports controller were not correctly
filling the holes without data.

Fixed duplication in supports and successful supports controller using a
concer.

Successfull supports controller will fill the holes without data in the
same way that supports controller does.
2018-09-14 11:30:59 +02:00

47 lines
1.4 KiB
Ruby

require 'rails_helper'
describe "Retrieves number of supports for a proposal" do
let(:created_at) { Time.now - 9.days }
let(:proposal) { create(:proposal, created_at: created_at, published_at: created_at) }
before do
8.times do |i|
user = create(:user, :verified)
Vote.create!(votable: proposal, voter: user, vote_weight: 1, created_at: proposal.created_at + i.days, updated_at: proposal.created_at + i.days)
end
sign_in(proposal.author)
end
it "returns the number of supports grouped by day" do
get proposal_dashboard_supports_path(proposal, format: :json)
json = JSON.parse(response.body, symbolize_names: true)
expect(response).to have_http_status(200)
expect(json.length).to eq(10)
expect(json.values.last).to eq(8)
end
it "returns the number of supports grouped by week" do
get proposal_dashboard_supports_path(proposal, group_by: 'week', format: :json)
json = JSON.parse(response.body, symbolize_names: true)
expect(response).to have_http_status(200)
expect(json.length).to eq(2)
expect(json.values.last).to eq(8)
end
it "returns the number of supports grouped by month" do
get proposal_dashboard_supports_path(proposal, group_by: 'month', format: :json)
json = JSON.parse(response.body, symbolize_names: true)
expect(response).to have_http_status(200)
expect(json.length).to be >= 1
expect(json.length).to be <= 2
expect(json.values.last).to eq(8)
end
end