Added more tests

Andrew Kane committed Jun 21, 2016
commit e5a356a325f639ce6015a071d0507ec31cc16bd0
Showing 2 changed files with 33 additions and 6 deletions
ahoy/properties.rb b/lib/ahoy/properties.rb +7 -2
@@ @@ -11,7 +11,7 @@ module Ahoy
when /mysql/
if column_type == :json
properties.each do |k, v|
- relation = relation.where("properties -> ? = ?", "$.#{k.to_s}", v)
+ relation = relation.where("properties -> ? = ?", "$.#{k.to_s}", v.as_json)
end
else
properties.each do |k, v|
@@ @@ -21,7 +21,12 @@ module Ahoy
when /postgres/
if column_type == :jsonb || column_type == :json
properties.each do |k, v|
- relation = relation.where("properties ->> ? = ?", k.to_s, v.to_s)
+ relation =
+ if v.nil?
+ relation.where("properties ->> ? IS NULL", k.to_s)
+ else
+ relation.where("properties ->> ? = ?", k.to_s, v.as_json.to_s)
+ end
end
else
properties.each do |k, v|
test/test_helper.rb +26 -4
@@ @@ -28,13 +28,35 @@ module PropertiesTest
end
def test_string
- create_event hello: "world"
- assert_equal 1, count_events(hello: "world")
+ create_event value: "world"
+ assert_equal 1, count_events(value: "world")
end
def test_number
- create_event product_id: 1
- assert_equal 1, count_events(product_id: 1)
+ create_event value: 1
+ assert_equal 1, count_events(value: 1)
+ end
+
+ def test_date
+ today = Date.today
+ create_event value: today
+ assert_equal 1, count_events(value: today)
+ end
+
+ def test_time
+ now = Time.now
+ create_event value: now
+ assert_equal 1, count_events(value: now)
+ end
+
+ def test_boolean
+ create_event value: true
+ assert_equal 1, count_events(value: true)
+ end
+
+ def test_nil
+ create_event value: nil
+ assert_equal 1, count_events(value: nil)
end
def test_any