Add a helper for build c3.js chart compatible data
This commit is contained in:
36
spec/models/ahoy/data_source_spec.rb
Normal file
36
spec/models/ahoy/data_source_spec.rb
Normal file
@@ -0,0 +1,36 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe Ahoy::DataSource do
|
||||
describe '#build' do
|
||||
before :each do
|
||||
time_1 = DateTime.parse("2015-01-01")
|
||||
time_2 = DateTime.parse("2015-01-02")
|
||||
time_3 = DateTime.parse("2015-01-03")
|
||||
|
||||
create :ahoy_event, name: 'foo', time: time_1
|
||||
create :ahoy_event, name: 'foo', time: time_1
|
||||
create :ahoy_event, name: 'foo', time: time_2
|
||||
create :ahoy_event, name: 'bar', time: time_1
|
||||
create :ahoy_event, name: 'bar', time: time_3
|
||||
create :ahoy_event, name: 'bar', time: time_3
|
||||
end
|
||||
|
||||
it 'should work without data sources' do
|
||||
ds = Ahoy::DataSource.new
|
||||
expect(ds.build).to eq x: []
|
||||
end
|
||||
|
||||
it 'should work with single data sources' do
|
||||
ds = Ahoy::DataSource.new
|
||||
ds.add 'foo', Ahoy::Event.where(name: 'foo').group_by_day(:time).count
|
||||
expect(ds.build).to eq :x=>["2015-01-01", "2015-01-02"], "foo"=>[2, 1]
|
||||
end
|
||||
|
||||
it 'should combine data sources' do
|
||||
ds = Ahoy::DataSource.new
|
||||
ds.add 'foo', Ahoy::Event.where(name: 'foo').group_by_day(:time).count
|
||||
ds.add 'bar', Ahoy::Event.where(name: 'bar').group_by_day(:time).count
|
||||
expect(ds.build).to eq :x=>["2015-01-01", "2015-01-02", "2015-01-03"], "foo"=>[2, 1, 0], "bar"=>[1, 0, 2]
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user