Updated tests and geocode async logic

Andrew Kane committed Jan 05, 2015
commit 4e4be8835f17f56840c9d5bffd073a3a22c929e4
Showing 7 changed files with 59 additions and 39 deletions
Rakefile +7 -0
@@ @@ -1 +1,8 @@
require "bundler/gem_tasks"
+ require "rake/testtask"
+
+ task :default => :test
+ Rake::TestTask.new do |t|
+ t.libs << "test"
+ t.pattern = "test/**/*_test.rb"
+ end
ahoy_matey.gemspec +2 -1
@@ @@ -18,6 +18,7 @@ Gem::Specification.new do |spec|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"]
+ spec.add_dependency "rails"
spec.add_dependency "addressable"
spec.add_dependency "browser", ">= 0.4.0"
spec.add_dependency "geocoder"
@@ @@ -29,5 +30,5 @@ Gem::Specification.new do |spec|
spec.add_development_dependency "bundler", "~> 1.5"
spec.add_development_dependency "rake"
- spec.add_development_dependency "rails"
+ spec.add_development_dependency "minitest"
end
ahoy.rb b/lib/ahoy.rb +1 -0
@@ @@ -1,3 +1,4 @@
+ require "rails"
require "addressable/uri"
require "browser"
require "geocoder"
ahoy/visit_properties.rb b/lib/ahoy/visit_properties.rb +1 -1
@@ @@ -25,7 +25,7 @@ module Ahoy
end
def keys
- if Ahoy.geocode
+ if Ahoy.geocode == true # no location keys for :async
KEYS
else
KEYS - LOCATION_KEYS
test/ahoy/visit_properties_test.rb +0 -34
@@ @@ -1,34 +0,0 @@
- require_relative '../test_helper'
-
- class TestVisitProperties < Minitest::Test
- def setup
- request = MiniTest::Mock.new
- @visit_properties = Ahoy::VisitProperties.new(request)
- end
-
- def test_keys
- with_geocode(true) do
- assert_equal @visit_properties.keys, Ahoy::VisitProperties::KEYS
- end
- end
-
- def test_keys_when_geocode_disabled
- with_geocode(false) do
- keys = @visit_properties.keys
-
- refute keys.include?(:country)
- refute keys.include?(:region)
- refute keys.include?(:city)
- end
- end
-
- private
-
- def with_geocode(enabled)
- original = Ahoy.geocode
- Ahoy.geocode = enabled
- yield
- ensure
- Ahoy.geocode = original
- end
- end
test/test_helper.rb +4 -3
@@ @@ -1,3 +1,4 @@
- require 'minitest/autorun'
- require 'rails'
- require_relative '../lib/ahoy.rb'
+ require "bundler/setup"
+ Bundler.require(:default)
+ require "minitest/autorun"
+ require "minitest/pride"
test/visit_properties_test.rb +44 -0
@@ @@ -0,0 +1,44 @@
+ require_relative "test_helper"
+
+ class TestVisitProperties < Minitest::Test
+ def setup
+ request = MiniTest::Mock.new
+ @visit_properties = Ahoy::VisitProperties.new(request)
+ end
+
+ def test_keys
+ with_geocode(true) do
+ assert_equal @visit_properties.keys, Ahoy::VisitProperties::KEYS
+ end
+ end
+
+ def test_keys_when_geocode_disabled
+ with_geocode(false) do
+ keys = @visit_properties.keys
+
+ refute keys.include?(:country)
+ refute keys.include?(:region)
+ refute keys.include?(:city)
+ end
+ end
+
+ def test_keys_when_geocode_async
+ with_geocode(:async) do
+ keys = @visit_properties.keys
+
+ refute keys.include?(:country)
+ refute keys.include?(:region)
+ refute keys.include?(:city)
+ end
+ end
+
+ private
+
+ def with_geocode(enabled)
+ original = Ahoy.geocode
+ Ahoy.geocode = enabled
+ yield
+ ensure
+ Ahoy.geocode = original
+ end
+ end