Module: Glib::TestHelpers
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/glib/test_helpers.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- HOST =
The best practice is to avoid using lvh.me due to security and performance concerns.
'www.localhost:3000'
Instance Method Summary collapse
- #crawl_json_pages(user, log_file: nil, dump_actions: false, dump_path: nil, skip_similar_page: false, &block) ⇒ Object
- #crawler_output_file(user, file_dir: nil) ⇒ Object
- #glib_travel(*args, &block) ⇒ Object
- #glib_travel_back ⇒ Object
- #glib_travel_freeze(*args, &block) ⇒ Object
- #logout ⇒ Object
- #logout_url ⇒ Object
-
#response_assert_equal ⇒ Object
LOG_DIR = File.expand_path( File.join(File.dirname(__FILE__), ‘integration/json_ui_crawler_test_results’) ).
- #retrace_json_pages(user, past_actions:) ⇒ Object
Instance Method Details
#crawl_json_pages(user, log_file: nil, dump_actions: false, dump_path: nil, skip_similar_page: false, &block) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/glib/test_helpers.rb', line 39 def crawl_json_pages(user, log_file: nil, dump_actions: false, dump_path: nil, skip_similar_page: false, &block) __execute_crawler(user, inspect_http: true) do |router, http| path = user[:path] ? "#{user[:path]}?format=json" : '/users/me?format=json&redirect=default' router.host = HOST router.skip_similar_page = skip_similar_page router.step( http, 'onClick' => { 'action' => user[:action] || 'initiate_navigation', 'url' => user[:url] || "http://#{HOST}#{path}" } ) if dump_actions csv_string = router.http_actions.map do |row| action, url, params = row [action, url, JSON.generate(params)].to_csv end.join filepath = crawler_output_file(user, file_dir: dump_path) File.write(filepath, csv_string) end end end |
#crawler_output_file(user, file_dir: nil) ⇒ Object
64 65 66 67 |
# File 'lib/glib/test_helpers.rb', line 64 def crawler_output_file(user, file_dir: nil) filename = "#{user[:email]}[#{user[:device]}][#{user[:version] || 'current'}].csv" File.join(file_dir || __crawler_log_dir, filename) end |
#glib_travel(*args, &block) ⇒ Object
86 87 88 |
# File 'lib/glib/test_helpers.rb', line 86 def glib_travel(*args, &block) Timecop.travel(*args, &block) end |
#glib_travel_back ⇒ Object
94 95 96 |
# File 'lib/glib/test_helpers.rb', line 94 def glib_travel_back Timecop.return end |
#glib_travel_freeze(*args, &block) ⇒ Object
90 91 92 |
# File 'lib/glib/test_helpers.rb', line 90 def glib_travel_freeze(*args, &block) Timecop.freeze(*args, &block) end |
#logout ⇒ Object
77 78 79 80 |
# File 'lib/glib/test_helpers.rb', line 77 def logout delete logout_url assert_response :success end |
#logout_url ⇒ Object
82 83 84 |
# File 'lib/glib/test_helpers.rb', line 82 def logout_url "http://#{HOST}/users/sign_out.json" end |
#response_assert_equal ⇒ Object
LOG_DIR = File.expand_path(
File.join(File.dirname(__FILE__), 'integration/json_ui_crawler_test_results')
)
33 34 35 36 37 |
# File 'lib/glib/test_helpers.rb', line 33 def response_assert_equal expected = __get_previous_result_from_git result = __log_controller_data(response.body) assert_equal JSON.parse(expected), JSON.parse(result), "Result mismatch! #{__git_is_available? ? `git diff #{__controller_log_dir}/#{__controller_log_file}` : ''}" end |
#retrace_json_pages(user, past_actions:) ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/glib/test_helpers.rb', line 69 def retrace_json_pages(user, past_actions:) __execute_crawler(user, inspect_http: false) do |router, http| # router.follow(http, guiding_routers) # router.follow_v2(Glib::JsonCrawler::Http.new(self, user, router), actions) router.follow_v2(http, past_actions) end end |