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 |