File tree Expand file tree Collapse file tree 3 files changed +23
-0
lines changed
app/models/rails_url_shortener
test/models/rails_url_shortener Expand file tree Collapse file tree 3 files changed +23
-0
lines changed Original file line number Diff line number Diff line change @@ -35,6 +35,7 @@ class Visit < ApplicationRecord
3535 # Return boolean
3636 # rubocop:disable Metrics/AbcSize
3737 def self . parse_and_save ( url , request )
38+ return false if !RailsUrlShortener . save_visits
3839 browser ( request )
3940 return false if !RailsUrlShortener . save_bots_visits && @browser . bot?
4041
Original file line number Diff line number Diff line change @@ -40,6 +40,8 @@ module RailsUrlShortener
4040 # so if you put this configuration like false could lose some visits to your link
4141 # by default saving all requests
4242 mattr_accessor :save_bots_visits , default : true
43+
44+ mattr_accessor :save_visits , default : true
4345end
4446
4547ActiveSupport . on_load ( :active_record ) do
Original file line number Diff line number Diff line change @@ -74,6 +74,26 @@ class VisitTest < ActiveSupport::TestCase
7474 assert_no_enqueued_jobs do
7575 assert_not Visit . parse_and_save ( rails_url_shortener_urls ( :one ) , request )
7676 end
77+
78+ RailsUrlShortener . save_bots_visits = true
79+ end
80+
81+ test "don't save any" do
82+ # set the configuration
83+ RailsUrlShortener . save_visits = false
84+
85+ # generate a fake request
86+ request = ActionDispatch ::TestRequest . create ( env = Rack ::MockRequest . env_for ( '/' , 'HTTP_HOST' => 'test.host' . b ,
87+ 'REMOTE_ADDR' => '1.0.0.0' . b , 'HTTP_USER_AGENT' => 'Rails Testing' . b ,
88+ 'HTTP_REFERER' => 'https://example.com' . b ) )
89+ request . user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Safari/605.1.15'
90+
91+ # asserts
92+ assert_no_enqueued_jobs do
93+ assert_not Visit . parse_and_save ( rails_url_shortener_urls ( :one ) , request )
94+ end
95+
96+ RailsUrlShortener . save_visits = true
7797 end
7898 end
7999end
You can’t perform that action at this time.
0 commit comments