Fix conflicts

This commit is contained in:
Juanjo Bazán
2015-08-17 21:08:15 +02:00
34 changed files with 17572 additions and 2 deletions

View File

@@ -0,0 +1,97 @@
require 'rails_helper'
describe Api::StatsController do
# GET index
#----------------------------------------------------------------------
describe 'GET index' do
let(:user) { create :user }
context 'events or visits not present' do
it 'should respond with bad_request' do
sign_in user
get :show
expect(response).to_not be_ok
expect(response.status).to eq 400
end
end
context 'events present' 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 return single events formated for working with c3.js' do
sign_in user
get :show, events: 'foo'
expect(response).to be_ok
data = JSON.parse(response.body)
expect(data).to eq "x"=>["2015-01-01", "2015-01-02"], "Foo"=>[2, 1]
end
it 'should return combined comma separated events formated for working with c3.js' do
sign_in user
get :show, events: 'foo,bar'
expect(response).to be_ok
data = JSON.parse(response.body)
expect(data).to eq "x"=>["2015-01-01", "2015-01-02", "2015-01-03"], "Foo"=>[2, 1, 0], "Bar"=>[1, 0, 2]
end
end
context 'visits present' do
it 'should return visits formated for working with c3.js' do
time_1 = DateTime.parse("2015-01-01")
time_2 = DateTime.parse("2015-01-02")
create :visit, started_at: time_1
create :visit, started_at: time_1
create :visit, started_at: time_2
sign_in user
get :show, visits: true
expect(response).to be_ok
data = JSON.parse(response.body)
expect(data).to eq "x"=>["2015-01-01", "2015-01-02"], "Visits"=>[2, 1]
end
end
context 'visits and events present' do
it 'should return combined events and visits formated for working with c3.js' do
time_1 = DateTime.parse("2015-01-01")
time_2 = DateTime.parse("2015-01-02")
create :ahoy_event, name: 'foo', time: time_1
create :ahoy_event, name: 'foo', time: time_2
create :ahoy_event, name: 'foo', time: time_2
create :visit, started_at: time_1
create :visit, started_at: time_1
create :visit, started_at: time_2
sign_in user
get :show, events: 'foo', visits: true
expect(response).to be_ok
data = JSON.parse(response.body)
expect(data).to eq "x"=>["2015-01-01", "2015-01-02"], "Foo"=>[1, 2], "Visits"=>[2, 1]
end
end
end
end

View File

@@ -0,0 +1,18 @@
require 'rails_helper'
describe DebatesController do
# create
#----------------------------------------------------------------------
describe 'POST create' do
let(:user) { create :user }
it 'should create an ahoy event' do
sign_in user
post :create, debate: { title: 'foo', description: 'foo bar', terms_of_service: 1 }
expect(Ahoy::Event.where(name: :debate_created).count).to eq 1
expect(Ahoy::Event.last.properties['debate_id']).to eq Debate.last.id
end
end
end

View File

@@ -60,4 +60,14 @@ FactoryGirl.define do
sequence(:value) { |n| "setting number #{n} value" }
end
factory :ahoy_event, :class => Ahoy::Event do
id { SecureRandom.uuid }
time DateTime.now
sequence(:name) {|n| "Event #{n} type"}
end
factory :visit do
id { SecureRandom.uuid }
started_at DateTime.now
end
end

View 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

View File

@@ -8,6 +8,7 @@ RSpec.configure do |config|
config.filter_run :focus
config.run_all_when_everything_filtered = true
config.include Devise::TestHelpers, :type => :controller
config.include FactoryGirl::Syntax::Methods
config.include(EmailSpec::Helpers)
config.include(EmailSpec::Matchers)