diff --git a/lib/ahoy/tracker.rb b/lib/ahoy/tracker.rb index 3fedfaec..180ce1c9 100644 --- a/lib/ahoy/tracker.rb +++ b/lib/ahoy/tracker.rb @@ -216,7 +216,7 @@ def visit_token_helper def visitor_token_helper @visitor_token_helper ||= begin token = existing_visitor_token - token ||= visitor_anonymity_set unless Ahoy.cookies? + token ||= visitor_anonymity_set unless Ahoy.cookies? || request.nil? token ||= generate_id unless Ahoy.api_only token end diff --git a/test/tracker_test.rb b/test/tracker_test.rb index 9e7b8947..25c1166f 100644 --- a/test/tracker_test.rb +++ b/test/tracker_test.rb @@ -11,6 +11,21 @@ def test_no_request assert_nil event.user_id end + def test_no_request_with_cookies_none + old_cookies = Ahoy.cookies + Ahoy.cookies = :none + + ahoy = Ahoy::Tracker.new + ahoy.track("Some event", some_prop: true) + + event = Ahoy::Event.last + assert_equal "Some event", event.name + assert_equal({"some_prop" => true}, event.properties) + assert_nil event.user_id + ensure + Ahoy.cookies = old_cookies + end + def test_no_cookies request = ActionDispatch::TestRequest.create