bugsnag 6.15.0 → 6.27.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardopts +12 -0
- data/CHANGELOG.md +289 -0
- data/README.md +1 -2
- data/VERSION +1 -1
- data/bugsnag.gemspec +19 -2
- data/lib/bugsnag/breadcrumb_type.rb +14 -0
- data/lib/bugsnag/breadcrumbs/breadcrumb.rb +35 -2
- data/lib/bugsnag/breadcrumbs/breadcrumbs.rb +1 -0
- data/lib/bugsnag/breadcrumbs/on_breadcrumb_callback_list.rb +48 -0
- data/lib/bugsnag/breadcrumbs/validator.rb +0 -24
- data/lib/bugsnag/cleaner.rb +70 -29
- data/lib/bugsnag/configuration.rb +445 -47
- data/lib/bugsnag/delivery/synchronous.rb +3 -4
- data/lib/bugsnag/delivery/thread_queue.rb +18 -5
- data/lib/bugsnag/endpoint_configuration.rb +11 -0
- data/lib/bugsnag/endpoint_validator.rb +80 -0
- data/lib/bugsnag/error.rb +25 -0
- data/lib/bugsnag/event.rb +5 -0
- data/lib/bugsnag/feature_flag.rb +74 -0
- data/lib/bugsnag/helpers.rb +17 -9
- data/lib/bugsnag/integrations/delayed_job.rb +13 -1
- data/lib/bugsnag/integrations/mailman.rb +2 -1
- data/lib/bugsnag/integrations/mongo.rb +5 -4
- data/lib/bugsnag/integrations/que.rb +2 -1
- data/lib/bugsnag/integrations/rack.rb +6 -4
- data/lib/bugsnag/integrations/rails/active_job.rb +100 -0
- data/lib/bugsnag/integrations/rails/rails_breadcrumbs.rb +2 -2
- data/lib/bugsnag/integrations/railtie.rb +93 -35
- data/lib/bugsnag/integrations/rake.rb +8 -3
- data/lib/bugsnag/integrations/resque.rb +30 -9
- data/lib/bugsnag/integrations/shoryuken.rb +2 -1
- data/lib/bugsnag/integrations/sidekiq.rb +3 -3
- data/lib/bugsnag/middleware/active_job.rb +18 -0
- data/lib/bugsnag/middleware/classify_error.rb +1 -0
- data/lib/bugsnag/middleware/delayed_job.rb +21 -1
- data/lib/bugsnag/middleware/exception_meta_data.rb +2 -0
- data/lib/bugsnag/middleware/rack_request.rb +103 -20
- data/lib/bugsnag/middleware/rails3_request.rb +2 -2
- data/lib/bugsnag/middleware/rake.rb +1 -1
- data/lib/bugsnag/middleware/session_data.rb +3 -1
- data/lib/bugsnag/middleware/sidekiq.rb +1 -1
- data/lib/bugsnag/middleware/suggestion_data.rb +9 -7
- data/lib/bugsnag/middleware/warden_user.rb +3 -0
- data/lib/bugsnag/middleware_stack.rb +6 -6
- data/lib/bugsnag/report.rb +292 -8
- data/lib/bugsnag/session_tracker.rb +52 -12
- data/lib/bugsnag/stacktrace.rb +14 -3
- data/lib/bugsnag/tasks/bugsnag.rake +1 -1
- data/lib/bugsnag/utility/duplicator.rb +124 -0
- data/lib/bugsnag/utility/feature_data_store.rb +41 -0
- data/lib/bugsnag/utility/feature_flag_delegate.rb +89 -0
- data/lib/bugsnag/utility/metadata_delegate.rb +102 -0
- data/lib/bugsnag.rb +256 -37
- metadata +25 -635
- data/.buildkite/pipeline.yml +0 -470
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -84
- data/.gitignore +0 -55
- data/.rdoc_options +0 -27
- data/.rspec +0 -3
- data/.rubocop.yml +0 -57
- data/.rubocop_todo.yml +0 -1049
- data/CONTRIBUTING.md +0 -64
- data/Gemfile +0 -50
- data/Rakefile +0 -37
- data/TESTING.md +0 -81
- data/UPGRADING.md +0 -91
- data/docker-compose.yml +0 -46
- data/dockerfiles/Dockerfile.jruby-unit-tests +0 -13
- data/dockerfiles/Dockerfile.ruby-maze-runner +0 -26
- data/dockerfiles/Dockerfile.ruby-unit-tests +0 -12
- data/features/.gitignore +0 -1
- data/features/delayed_job.feature +0 -36
- data/features/fixtures/delayed_job/Dockerfile +0 -15
- data/features/fixtures/delayed_job/app/.gitignore +0 -21
- data/features/fixtures/delayed_job/app/Gemfile +0 -57
- data/features/fixtures/delayed_job/app/README.md +0 -24
- data/features/fixtures/delayed_job/app/Rakefile +0 -24
- data/features/fixtures/delayed_job/app/app/assets/config/manifest.js +0 -3
- data/features/fixtures/delayed_job/app/app/assets/images/.keep +0 -0
- data/features/fixtures/delayed_job/app/app/assets/javascripts/application.js +0 -16
- data/features/fixtures/delayed_job/app/app/assets/javascripts/cable.js +0 -13
- data/features/fixtures/delayed_job/app/app/assets/javascripts/channels/.keep +0 -0
- data/features/fixtures/delayed_job/app/app/assets/stylesheets/application.css +0 -15
- data/features/fixtures/delayed_job/app/app/channels/application_cable/channel.rb +0 -4
- data/features/fixtures/delayed_job/app/app/channels/application_cable/connection.rb +0 -4
- data/features/fixtures/delayed_job/app/app/controllers/application_controller.rb +0 -3
- data/features/fixtures/delayed_job/app/app/controllers/concerns/.keep +0 -0
- data/features/fixtures/delayed_job/app/app/helpers/application_helper.rb +0 -2
- data/features/fixtures/delayed_job/app/app/jobs/application_job.rb +0 -2
- data/features/fixtures/delayed_job/app/app/mailers/application_mailer.rb +0 -4
- data/features/fixtures/delayed_job/app/app/models/application_record.rb +0 -3
- data/features/fixtures/delayed_job/app/app/models/concerns/.keep +0 -0
- data/features/fixtures/delayed_job/app/app/models/test_model.rb +0 -10
- data/features/fixtures/delayed_job/app/app/views/layouts/application.html.erb +0 -14
- data/features/fixtures/delayed_job/app/app/views/layouts/mailer.html.erb +0 -13
- data/features/fixtures/delayed_job/app/app/views/layouts/mailer.text.erb +0 -1
- data/features/fixtures/delayed_job/app/config/application.rb +0 -15
- data/features/fixtures/delayed_job/app/config/boot.rb +0 -3
- data/features/fixtures/delayed_job/app/config/cable.yml +0 -9
- data/features/fixtures/delayed_job/app/config/database.yml +0 -25
- data/features/fixtures/delayed_job/app/config/environment.rb +0 -5
- data/features/fixtures/delayed_job/app/config/environments/development.rb +0 -54
- data/features/fixtures/delayed_job/app/config/environments/production.rb +0 -86
- data/features/fixtures/delayed_job/app/config/environments/test.rb +0 -42
- data/features/fixtures/delayed_job/app/config/initializers/application_controller_renderer.rb +0 -8
- data/features/fixtures/delayed_job/app/config/initializers/assets.rb +0 -11
- data/features/fixtures/delayed_job/app/config/initializers/backtrace_silencers.rb +0 -7
- data/features/fixtures/delayed_job/app/config/initializers/bugsnag.rb +0 -14
- data/features/fixtures/delayed_job/app/config/initializers/cookies_serializer.rb +0 -5
- data/features/fixtures/delayed_job/app/config/initializers/delayed_job.rb +0 -3
- data/features/fixtures/delayed_job/app/config/initializers/filter_parameter_logging.rb +0 -4
- data/features/fixtures/delayed_job/app/config/initializers/inflections.rb +0 -16
- data/features/fixtures/delayed_job/app/config/initializers/mime_types.rb +0 -4
- data/features/fixtures/delayed_job/app/config/initializers/new_framework_defaults.rb +0 -26
- data/features/fixtures/delayed_job/app/config/initializers/session_store.rb +0 -3
- data/features/fixtures/delayed_job/app/config/initializers/wrap_parameters.rb +0 -14
- data/features/fixtures/delayed_job/app/config/locales/en.yml +0 -23
- data/features/fixtures/delayed_job/app/config/puma.rb +0 -47
- data/features/fixtures/delayed_job/app/config/routes.rb +0 -3
- data/features/fixtures/delayed_job/app/config/secrets.yml +0 -22
- data/features/fixtures/delayed_job/app/config/spring.rb +0 -6
- data/features/fixtures/delayed_job/app/config.ru +0 -5
- data/features/fixtures/delayed_job/app/db/migrate/20181024232549_create_delayed_jobs.rb +0 -22
- data/features/fixtures/delayed_job/app/db/migrate/20181024232817_create_test_models.rb +0 -8
- data/features/fixtures/delayed_job/app/db/schema.rb +0 -30
- data/features/fixtures/delayed_job/app/db/seeds.rb +0 -7
- data/features/fixtures/delayed_job/app/lib/assets/.keep +0 -0
- data/features/fixtures/delayed_job/app/lib/tasks/.keep +0 -0
- data/features/fixtures/delayed_job/app/log/.keep +0 -0
- data/features/fixtures/delayed_job/app/public/404.html +0 -67
- data/features/fixtures/delayed_job/app/public/422.html +0 -67
- data/features/fixtures/delayed_job/app/public/500.html +0 -66
- data/features/fixtures/delayed_job/app/public/apple-touch-icon-precomposed.png +0 -0
- data/features/fixtures/delayed_job/app/public/apple-touch-icon.png +0 -0
- data/features/fixtures/delayed_job/app/public/favicon.ico +0 -0
- data/features/fixtures/delayed_job/app/public/robots.txt +0 -5
- data/features/fixtures/delayed_job/app/test/controllers/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/fixtures/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/fixtures/files/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/fixtures/test_models.yml +0 -11
- data/features/fixtures/delayed_job/app/test/helpers/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/integration/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/mailers/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/models/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/models/test_model_test.rb +0 -7
- data/features/fixtures/delayed_job/app/test/test_helper.rb +0 -10
- data/features/fixtures/delayed_job/app/tmp/.keep +0 -0
- data/features/fixtures/docker-compose.yml +0 -303
- data/features/fixtures/expected_breadcrumbs/active_job.json +0 -9
- data/features/fixtures/expected_breadcrumbs/mongo_failed.json +0 -15
- data/features/fixtures/expected_breadcrumbs/mongo_filtered_request.json +0 -15
- data/features/fixtures/expected_breadcrumbs/mongo_filtered_result.json +0 -15
- data/features/fixtures/expected_breadcrumbs/mongo_success.json +0 -14
- data/features/fixtures/expected_breadcrumbs/request.json +0 -13
- data/features/fixtures/expected_breadcrumbs/sql_with_bindings.json +0 -12
- data/features/fixtures/expected_breadcrumbs/sql_without_bindings.json +0 -11
- data/features/fixtures/plain/.dockerignore +0 -2
- data/features/fixtures/plain/Dockerfile +0 -11
- data/features/fixtures/plain/app/Gemfile +0 -3
- data/features/fixtures/plain/app/app.rb +0 -38
- data/features/fixtures/plain/app/configuration/api_key.rb +0 -9
- data/features/fixtures/plain/app/configuration/proxy.rb +0 -14
- data/features/fixtures/plain/app/configuration/send_handled.rb +0 -7
- data/features/fixtures/plain/app/configuration/send_unhandled.rb +0 -9
- data/features/fixtures/plain/app/delivery/fork_threadpool.rb +0 -27
- data/features/fixtures/plain/app/delivery/synchronous.rb +0 -14
- data/features/fixtures/plain/app/delivery/threadpool.rb +0 -14
- data/features/fixtures/plain/app/exception_data/crash.rb +0 -34
- data/features/fixtures/plain/app/exception_data/handled_context.rb +0 -10
- data/features/fixtures/plain/app/exception_data/handled_hash.rb +0 -10
- data/features/fixtures/plain/app/exception_data/handled_meta_data.rb +0 -10
- data/features/fixtures/plain/app/exception_data/handled_user_id.rb +0 -10
- data/features/fixtures/plain/app/exception_data/unhandled_context.rb +0 -7
- data/features/fixtures/plain/app/exception_data/unhandled_hash.rb +0 -7
- data/features/fixtures/plain/app/exception_data/unhandled_meta_data.rb +0 -7
- data/features/fixtures/plain/app/exception_data/unhandled_user_id.rb +0 -7
- data/features/fixtures/plain/app/filters/additional_filters.rb +0 -11
- data/features/fixtures/plain/app/filters/default_filters.rb +0 -15
- data/features/fixtures/plain/app/handled/block_metadata.rb +0 -15
- data/features/fixtures/plain/app/handled/ignore_exception.rb +0 -12
- data/features/fixtures/plain/app/handled/notify_exception.rb +0 -9
- data/features/fixtures/plain/app/handled/notify_string.rb +0 -9
- data/features/fixtures/plain/app/ignore_classes/handled.rb +0 -8
- data/features/fixtures/plain/app/ignore_classes/ignore_error.rb +0 -8
- data/features/fixtures/plain/app/ignore_classes/unhandled.rb +0 -4
- data/features/fixtures/plain/app/report_modification/add_tab.rb +0 -16
- data/features/fixtures/plain/app/report_modification/add_tab_existing.rb +0 -22
- data/features/fixtures/plain/app/report_modification/add_tab_override.rb +0 -19
- data/features/fixtures/plain/app/report_modification/ignore_report.rb +0 -9
- data/features/fixtures/plain/app/report_modification/initiators/handled_before_notify.rb +0 -10
- data/features/fixtures/plain/app/report_modification/initiators/handled_block.rb +0 -8
- data/features/fixtures/plain/app/report_modification/initiators/handled_on_error.rb +0 -10
- data/features/fixtures/plain/app/report_modification/initiators/unhandled_before_notify.rb +0 -11
- data/features/fixtures/plain/app/report_modification/initiators/unhandled_on_error.rb +0 -11
- data/features/fixtures/plain/app/report_modification/modify_api_key.rb +0 -9
- data/features/fixtures/plain/app/report_modification/modify_severity.rb +0 -9
- data/features/fixtures/plain/app/report_modification/remove_user_details.rb +0 -14
- data/features/fixtures/plain/app/report_modification/set_custom_user_details.rb +0 -16
- data/features/fixtures/plain/app/report_modification/set_user_details.rb +0 -13
- data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_before_notify.rb +0 -29
- data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_block.rb +0 -24
- data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_on_error.rb +0 -29
- data/features/fixtures/plain/app/stack_frame_modification/initiators/unhandled_before_notify.rb +0 -26
- data/features/fixtures/plain/app/stack_frame_modification/initiators/unhandled_on_error.rb +0 -26
- data/features/fixtures/plain/app/stack_frame_modification/mark_frames_in_project.rb +0 -13
- data/features/fixtures/plain/app/stack_frame_modification/remove_stack_frame.rb +0 -9
- data/features/fixtures/plain/app/unhandled/bad_syntax.rb +0 -1
- data/features/fixtures/plain/app/unhandled/custom_error.rb +0 -9
- data/features/fixtures/plain/app/unhandled/interrupt.rb +0 -6
- data/features/fixtures/plain/app/unhandled/load_error.rb +0 -6
- data/features/fixtures/plain/app/unhandled/local_jump_error.rb +0 -10
- data/features/fixtures/plain/app/unhandled/name_error.rb +0 -6
- data/features/fixtures/plain/app/unhandled/no_method_error.rb +0 -6
- data/features/fixtures/plain/app/unhandled/runtime_error.rb +0 -6
- data/features/fixtures/plain/app/unhandled/syntax_error.rb +0 -6
- data/features/fixtures/plain/app/unhandled/system_call_error.rb +0 -6
- data/features/fixtures/plain/app/unhandled/system_exit.rb +0 -6
- data/features/fixtures/plain/json/delivery_fork.json +0 -4
- data/features/fixtures/plain/json/delivery_synchronous.json +0 -4
- data/features/fixtures/plain/json/delivery_threadpool.json +0 -4
- data/features/fixtures/plain/json/filters_default_metadata_filters.json +0 -9
- data/features/fixtures/rack1/.dockerignore +0 -1
- data/features/fixtures/rack1/Dockerfile +0 -13
- data/features/fixtures/rack1/Gemfile +0 -4
- data/features/fixtures/rack1/app.rb +0 -8
- data/features/fixtures/rack2/.dockerignore +0 -1
- data/features/fixtures/rack2/Dockerfile +0 -13
- data/features/fixtures/rack2/Gemfile +0 -4
- data/features/fixtures/rack2/app.rb +0 -8
- data/features/fixtures/rails3/.dockerignore +0 -1
- data/features/fixtures/rails3/Dockerfile +0 -15
- data/features/fixtures/rails3/app/.gitignore +0 -15
- data/features/fixtures/rails3/app/Gemfile +0 -17
- data/features/fixtures/rails3/app/Rakefile +0 -7
- data/features/fixtures/rails3/app/app/assets/images/rails.png +0 -0
- data/features/fixtures/rails3/app/app/assets/javascripts/application.js +0 -15
- data/features/fixtures/rails3/app/app/assets/stylesheets/application.css +0 -13
- data/features/fixtures/rails3/app/app/controllers/api_key_controller.rb +0 -20
- data/features/fixtures/rails3/app/app/controllers/app_type_controller.rb +0 -20
- data/features/fixtures/rails3/app/app/controllers/app_version_controller.rb +0 -25
- data/features/fixtures/rails3/app/app/controllers/application_controller.rb +0 -7
- data/features/fixtures/rails3/app/app/controllers/auto_notify_controller.rb +0 -31
- data/features/fixtures/rails3/app/app/controllers/before_notify_controller.rb +0 -44
- data/features/fixtures/rails3/app/app/controllers/breadcrumbs_controller.rb +0 -19
- data/features/fixtures/rails3/app/app/controllers/handled_controller.rb +0 -26
- data/features/fixtures/rails3/app/app/controllers/ignore_classes_controller.rb +0 -23
- data/features/fixtures/rails3/app/app/controllers/metadata_filters_controller.rb +0 -16
- data/features/fixtures/rails3/app/app/controllers/project_root_controller.rb +0 -25
- data/features/fixtures/rails3/app/app/controllers/release_stage_controller.rb +0 -20
- data/features/fixtures/rails3/app/app/controllers/send_code_controller.rb +0 -20
- data/features/fixtures/rails3/app/app/controllers/send_environment_controller.rb +0 -12
- data/features/fixtures/rails3/app/app/controllers/session_tracking_controller.rb +0 -24
- data/features/fixtures/rails3/app/app/controllers/unhandled_controller.rb +0 -11
- data/features/fixtures/rails3/app/app/controllers/warden_controller.rb +0 -30
- data/features/fixtures/rails3/app/app/helpers/application_helper.rb +0 -2
- data/features/fixtures/rails3/app/app/mailers/.gitkeep +0 -0
- data/features/fixtures/rails3/app/app/models/.gitkeep +0 -0
- data/features/fixtures/rails3/app/app/models/user.rb +0 -6
- data/features/fixtures/rails3/app/app/views/layouts/application.html.erb +0 -14
- data/features/fixtures/rails3/app/config/application.rb +0 -67
- data/features/fixtures/rails3/app/config/boot.rb +0 -6
- data/features/fixtures/rails3/app/config/database.yml +0 -31
- data/features/fixtures/rails3/app/config/environment.rb +0 -5
- data/features/fixtures/rails3/app/config/environments/development.rb +0 -37
- data/features/fixtures/rails3/app/config/environments/production.rb +0 -67
- data/features/fixtures/rails3/app/config/environments/rails_env.rb +0 -37
- data/features/fixtures/rails3/app/config/initializers/bugsnag.rb +0 -29
- data/features/fixtures/rails3/app/config/initializers/secret_token.rb +0 -7
- data/features/fixtures/rails3/app/config/initializers/session_store.rb +0 -8
- data/features/fixtures/rails3/app/config/initializers/warden.rb +0 -3
- data/features/fixtures/rails3/app/config/initializers/wrap_parameters.rb +0 -14
- data/features/fixtures/rails3/app/config/locales/en.yml +0 -5
- data/features/fixtures/rails3/app/config/routes.rb +0 -19
- data/features/fixtures/rails3/app/config.ru +0 -4
- data/features/fixtures/rails3/app/db/migrate/20180423142727_create_users.rb +0 -45
- data/features/fixtures/rails3/app/db/schema.rb +0 -37
- data/features/fixtures/rails3/app/db/seeds.rb +0 -7
- data/features/fixtures/rails3/app/lib/assets/.gitkeep +0 -0
- data/features/fixtures/rails3/app/lib/strategies/token_strategy.rb +0 -12
- data/features/fixtures/rails3/app/lib/tasks/.gitkeep +0 -0
- data/features/fixtures/rails3/app/log/.gitkeep +0 -0
- data/features/fixtures/rails3/app/public/404.html +0 -26
- data/features/fixtures/rails3/app/public/422.html +0 -26
- data/features/fixtures/rails3/app/public/500.html +0 -25
- data/features/fixtures/rails3/app/public/favicon.ico +0 -0
- data/features/fixtures/rails3/app/public/index.html +0 -241
- data/features/fixtures/rails3/app/public/robots.txt +0 -5
- data/features/fixtures/rails3/app/script/rails +0 -6
- data/features/fixtures/rails4/.dockerignore +0 -1
- data/features/fixtures/rails4/Dockerfile +0 -17
- data/features/fixtures/rails4/app/.gitignore +0 -16
- data/features/fixtures/rails4/app/Gemfile +0 -46
- data/features/fixtures/rails4/app/README.rdoc +0 -28
- data/features/fixtures/rails4/app/Rakefile +0 -6
- data/features/fixtures/rails4/app/app/assets/images/.keep +0 -0
- data/features/fixtures/rails4/app/app/assets/javascripts/application.js +0 -16
- data/features/fixtures/rails4/app/app/assets/stylesheets/application.css +0 -13
- data/features/fixtures/rails4/app/app/controllers/api_key_controller.rb +0 -20
- data/features/fixtures/rails4/app/app/controllers/app_type_controller.rb +0 -20
- data/features/fixtures/rails4/app/app/controllers/app_version_controller.rb +0 -25
- data/features/fixtures/rails4/app/app/controllers/application_controller.rb +0 -7
- data/features/fixtures/rails4/app/app/controllers/auto_notify_controller.rb +0 -31
- data/features/fixtures/rails4/app/app/controllers/before_notify_controller.rb +0 -44
- data/features/fixtures/rails4/app/app/controllers/breadcrumbs_controller.rb +0 -26
- data/features/fixtures/rails4/app/app/controllers/concerns/.keep +0 -0
- data/features/fixtures/rails4/app/app/controllers/devise_controller.rb +0 -32
- data/features/fixtures/rails4/app/app/controllers/handled_controller.rb +0 -26
- data/features/fixtures/rails4/app/app/controllers/ignore_classes_controller.rb +0 -23
- data/features/fixtures/rails4/app/app/controllers/metadata_filters_controller.rb +0 -16
- data/features/fixtures/rails4/app/app/controllers/mongo_controller.rb +0 -23
- data/features/fixtures/rails4/app/app/controllers/project_root_controller.rb +0 -25
- data/features/fixtures/rails4/app/app/controllers/release_stage_controller.rb +0 -20
- data/features/fixtures/rails4/app/app/controllers/send_code_controller.rb +0 -20
- data/features/fixtures/rails4/app/app/controllers/send_environment_controller.rb +0 -12
- data/features/fixtures/rails4/app/app/controllers/session_tracking_controller.rb +0 -24
- data/features/fixtures/rails4/app/app/controllers/unhandled_controller.rb +0 -11
- data/features/fixtures/rails4/app/app/helpers/application_helper.rb +0 -2
- data/features/fixtures/rails4/app/app/jobs/application_job.rb +0 -2
- data/features/fixtures/rails4/app/app/jobs/notify_job.rb +0 -5
- data/features/fixtures/rails4/app/app/mailers/.keep +0 -0
- data/features/fixtures/rails4/app/app/models/.keep +0 -0
- data/features/fixtures/rails4/app/app/models/concerns/.keep +0 -0
- data/features/fixtures/rails4/app/app/models/mongo_model.rb +0 -6
- data/features/fixtures/rails4/app/app/models/user.rb +0 -6
- data/features/fixtures/rails4/app/app/views/layouts/application.html.erb +0 -14
- data/features/fixtures/rails4/app/config/application.rb +0 -23
- data/features/fixtures/rails4/app/config/boot.rb +0 -4
- data/features/fixtures/rails4/app/config/database.yml +0 -31
- data/features/fixtures/rails4/app/config/environment.rb +0 -5
- data/features/fixtures/rails4/app/config/environments/development.rb +0 -31
- data/features/fixtures/rails4/app/config/environments/production.rb +0 -81
- data/features/fixtures/rails4/app/config/environments/rails_env.rb +0 -30
- data/features/fixtures/rails4/app/config/environments/test.rb +0 -31
- data/features/fixtures/rails4/app/config/initializers/backtrace_silencers.rb +0 -7
- data/features/fixtures/rails4/app/config/initializers/bugsnag.rb +0 -29
- data/features/fixtures/rails4/app/config/initializers/devise.rb +0 -283
- data/features/fixtures/rails4/app/config/initializers/filter_parameter_logging.rb +0 -5
- data/features/fixtures/rails4/app/config/initializers/inflections.rb +0 -16
- data/features/fixtures/rails4/app/config/initializers/mime_types.rb +0 -5
- data/features/fixtures/rails4/app/config/initializers/secret_token.rb +0 -12
- data/features/fixtures/rails4/app/config/initializers/session_store.rb +0 -3
- data/features/fixtures/rails4/app/config/initializers/wrap_parameters.rb +0 -14
- data/features/fixtures/rails4/app/config/locales/devise.en.yml +0 -64
- data/features/fixtures/rails4/app/config/locales/en.yml +0 -23
- data/features/fixtures/rails4/app/config/mongoid.yml +0 -22
- data/features/fixtures/rails4/app/config/routes.rb +0 -21
- data/features/fixtures/rails4/app/config.ru +0 -4
- data/features/fixtures/rails4/app/db/migrate/20180420160315_devise_create_users.rb +0 -47
- data/features/fixtures/rails4/app/db/seeds.rb +0 -7
- data/features/fixtures/rails4/app/lib/assets/.keep +0 -0
- data/features/fixtures/rails4/app/lib/tasks/.keep +0 -0
- data/features/fixtures/rails4/app/log/.keep +0 -0
- data/features/fixtures/rails4/app/public/404.html +0 -58
- data/features/fixtures/rails4/app/public/422.html +0 -58
- data/features/fixtures/rails4/app/public/500.html +0 -57
- data/features/fixtures/rails4/app/public/favicon.ico +0 -0
- data/features/fixtures/rails4/app/public/robots.txt +0 -5
- data/features/fixtures/rails4/app/test/controllers/.keep +0 -0
- data/features/fixtures/rails4/app/test/fixtures/.keep +0 -0
- data/features/fixtures/rails4/app/test/helpers/.keep +0 -0
- data/features/fixtures/rails4/app/test/integration/.keep +0 -0
- data/features/fixtures/rails4/app/test/mailers/.keep +0 -0
- data/features/fixtures/rails4/app/test/models/.keep +0 -0
- data/features/fixtures/rails4/app/test/test_helper.rb +0 -15
- data/features/fixtures/rails5/.dockerignore +0 -1
- data/features/fixtures/rails5/Dockerfile +0 -17
- data/features/fixtures/rails5/app/.gitignore +0 -21
- data/features/fixtures/rails5/app/Gemfile +0 -52
- data/features/fixtures/rails5/app/README.md +0 -24
- data/features/fixtures/rails5/app/Rakefile +0 -6
- data/features/fixtures/rails5/app/app/assets/config/manifest.js +0 -3
- data/features/fixtures/rails5/app/app/assets/images/.keep +0 -0
- data/features/fixtures/rails5/app/app/assets/javascripts/application.js +0 -16
- data/features/fixtures/rails5/app/app/assets/javascripts/cable.js +0 -13
- data/features/fixtures/rails5/app/app/assets/javascripts/channels/.keep +0 -0
- data/features/fixtures/rails5/app/app/assets/stylesheets/application.css +0 -15
- data/features/fixtures/rails5/app/app/channels/application_cable/channel.rb +0 -4
- data/features/fixtures/rails5/app/app/channels/application_cable/connection.rb +0 -4
- data/features/fixtures/rails5/app/app/controllers/api_key_controller.rb +0 -16
- data/features/fixtures/rails5/app/app/controllers/app_type_controller.rb +0 -16
- data/features/fixtures/rails5/app/app/controllers/app_version_controller.rb +0 -21
- data/features/fixtures/rails5/app/app/controllers/application_controller.rb +0 -7
- data/features/fixtures/rails5/app/app/controllers/auto_notify_controller.rb +0 -27
- data/features/fixtures/rails5/app/app/controllers/before_notify_controller.rb +0 -40
- data/features/fixtures/rails5/app/app/controllers/breadcrumbs_controller.rb +0 -24
- data/features/fixtures/rails5/app/app/controllers/clearance_controller.rb +0 -33
- data/features/fixtures/rails5/app/app/controllers/concerns/.keep +0 -0
- data/features/fixtures/rails5/app/app/controllers/handled_controller.rb +0 -22
- data/features/fixtures/rails5/app/app/controllers/ignore_classes_controller.rb +0 -19
- data/features/fixtures/rails5/app/app/controllers/metadata_filters_controller.rb +0 -12
- data/features/fixtures/rails5/app/app/controllers/mongo_controller.rb +0 -22
- data/features/fixtures/rails5/app/app/controllers/project_root_controller.rb +0 -21
- data/features/fixtures/rails5/app/app/controllers/release_stage_controller.rb +0 -16
- data/features/fixtures/rails5/app/app/controllers/send_code_controller.rb +0 -16
- data/features/fixtures/rails5/app/app/controllers/send_environment_controller.rb +0 -8
- data/features/fixtures/rails5/app/app/controllers/session_tracking_controller.rb +0 -20
- data/features/fixtures/rails5/app/app/controllers/unhandled_controller.rb +0 -7
- data/features/fixtures/rails5/app/app/helpers/application_helper.rb +0 -2
- data/features/fixtures/rails5/app/app/jobs/application_job.rb +0 -2
- data/features/fixtures/rails5/app/app/jobs/notify_job.rb +0 -5
- data/features/fixtures/rails5/app/app/mailers/application_mailer.rb +0 -4
- data/features/fixtures/rails5/app/app/models/application_record.rb +0 -3
- data/features/fixtures/rails5/app/app/models/concerns/.keep +0 -0
- data/features/fixtures/rails5/app/app/models/mongo_model.rb +0 -6
- data/features/fixtures/rails5/app/app/models/user.rb +0 -3
- data/features/fixtures/rails5/app/app/views/layouts/application.html.erb +0 -14
- data/features/fixtures/rails5/app/app/views/layouts/mailer.html.erb +0 -13
- data/features/fixtures/rails5/app/app/views/layouts/mailer.text.erb +0 -1
- data/features/fixtures/rails5/app/config/application.rb +0 -15
- data/features/fixtures/rails5/app/config/boot.rb +0 -3
- data/features/fixtures/rails5/app/config/cable.yml +0 -9
- data/features/fixtures/rails5/app/config/database.yml +0 -29
- data/features/fixtures/rails5/app/config/environment.rb +0 -5
- data/features/fixtures/rails5/app/config/environments/development.rb +0 -55
- data/features/fixtures/rails5/app/config/environments/production.rb +0 -87
- data/features/fixtures/rails5/app/config/environments/rails_env.rb +0 -55
- data/features/fixtures/rails5/app/config/environments/test.rb +0 -55
- data/features/fixtures/rails5/app/config/initializers/assets.rb +0 -11
- data/features/fixtures/rails5/app/config/initializers/backtrace_silencers.rb +0 -7
- data/features/fixtures/rails5/app/config/initializers/bugsnag.rb +0 -29
- data/features/fixtures/rails5/app/config/initializers/clearance.rb +0 -5
- data/features/fixtures/rails5/app/config/initializers/cookies_serializer.rb +0 -5
- data/features/fixtures/rails5/app/config/initializers/filter_parameter_logging.rb +0 -5
- data/features/fixtures/rails5/app/config/initializers/inflections.rb +0 -16
- data/features/fixtures/rails5/app/config/initializers/mime_types.rb +0 -4
- data/features/fixtures/rails5/app/config/initializers/new_framework_defaults.rb +0 -24
- data/features/fixtures/rails5/app/config/initializers/session_store.rb +0 -3
- data/features/fixtures/rails5/app/config/initializers/wrap_parameters.rb +0 -14
- data/features/fixtures/rails5/app/config/locales/devise.en.yml +0 -64
- data/features/fixtures/rails5/app/config/locales/en.yml +0 -23
- data/features/fixtures/rails5/app/config/mongoid.yml +0 -23
- data/features/fixtures/rails5/app/config/puma.rb +0 -47
- data/features/fixtures/rails5/app/config/routes.rb +0 -62
- data/features/fixtures/rails5/app/config/secrets.yml +0 -25
- data/features/fixtures/rails5/app/config/spring.rb +0 -6
- data/features/fixtures/rails5/app/config.ru +0 -5
- data/features/fixtures/rails5/app/db/migrate/20180426095545_create_users.rb +0 -17
- data/features/fixtures/rails5/app/db/schema.rb +0 -29
- data/features/fixtures/rails5/app/db/seeds.rb +0 -7
- data/features/fixtures/rails5/app/lib/assets/.keep +0 -0
- data/features/fixtures/rails5/app/lib/tasks/.keep +0 -0
- data/features/fixtures/rails5/app/log/.keep +0 -0
- data/features/fixtures/rails5/app/public/404.html +0 -67
- data/features/fixtures/rails5/app/public/422.html +0 -67
- data/features/fixtures/rails5/app/public/500.html +0 -66
- data/features/fixtures/rails5/app/public/apple-touch-icon-precomposed.png +0 -0
- data/features/fixtures/rails5/app/public/apple-touch-icon.png +0 -0
- data/features/fixtures/rails5/app/public/favicon.ico +0 -0
- data/features/fixtures/rails5/app/public/robots.txt +0 -5
- data/features/fixtures/rails5/app/test/controllers/.keep +0 -0
- data/features/fixtures/rails5/app/test/fixtures/.keep +0 -0
- data/features/fixtures/rails5/app/test/fixtures/files/.keep +0 -0
- data/features/fixtures/rails5/app/test/helpers/.keep +0 -0
- data/features/fixtures/rails5/app/test/integration/.keep +0 -0
- data/features/fixtures/rails5/app/test/mailers/.keep +0 -0
- data/features/fixtures/rails5/app/test/models/.keep +0 -0
- data/features/fixtures/rails5/app/test/test_helper.rb +0 -10
- data/features/fixtures/rails5/app/tmp/.keep +0 -0
- data/features/fixtures/rails6/.dockerignore +0 -1
- data/features/fixtures/rails6/Dockerfile +0 -26
- data/features/fixtures/rails6/app/.browserslistrc +0 -1
- data/features/fixtures/rails6/app/.gitignore +0 -35
- data/features/fixtures/rails6/app/.ruby-version +0 -1
- data/features/fixtures/rails6/app/Gemfile +0 -58
- data/features/fixtures/rails6/app/README.md +0 -24
- data/features/fixtures/rails6/app/Rakefile +0 -6
- data/features/fixtures/rails6/app/app/assets/config/manifest.js +0 -2
- data/features/fixtures/rails6/app/app/assets/images/.keep +0 -0
- data/features/fixtures/rails6/app/app/assets/stylesheets/application.css +0 -15
- data/features/fixtures/rails6/app/app/channels/application_cable/channel.rb +0 -4
- data/features/fixtures/rails6/app/app/channels/application_cable/connection.rb +0 -4
- data/features/fixtures/rails6/app/app/controllers/api_key_controller.rb +0 -16
- data/features/fixtures/rails6/app/app/controllers/app_type_controller.rb +0 -16
- data/features/fixtures/rails6/app/app/controllers/app_version_controller.rb +0 -21
- data/features/fixtures/rails6/app/app/controllers/application_controller.rb +0 -7
- data/features/fixtures/rails6/app/app/controllers/auto_notify_controller.rb +0 -27
- data/features/fixtures/rails6/app/app/controllers/before_notify_controller.rb +0 -40
- data/features/fixtures/rails6/app/app/controllers/breadcrumbs_controller.rb +0 -24
- data/features/fixtures/rails6/app/app/controllers/clearance_controller.rb +0 -33
- data/features/fixtures/rails6/app/app/controllers/concerns/.keep +0 -0
- data/features/fixtures/rails6/app/app/controllers/handled_controller.rb +0 -22
- data/features/fixtures/rails6/app/app/controllers/ignore_classes_controller.rb +0 -19
- data/features/fixtures/rails6/app/app/controllers/metadata_filters_controller.rb +0 -12
- data/features/fixtures/rails6/app/app/controllers/mongo_controller.rb +0 -22
- data/features/fixtures/rails6/app/app/controllers/project_root_controller.rb +0 -21
- data/features/fixtures/rails6/app/app/controllers/release_stage_controller.rb +0 -16
- data/features/fixtures/rails6/app/app/controllers/send_code_controller.rb +0 -16
- data/features/fixtures/rails6/app/app/controllers/send_environment_controller.rb +0 -8
- data/features/fixtures/rails6/app/app/controllers/session_tracking_controller.rb +0 -20
- data/features/fixtures/rails6/app/app/controllers/unhandled_controller.rb +0 -7
- data/features/fixtures/rails6/app/app/helpers/application_helper.rb +0 -2
- data/features/fixtures/rails6/app/app/javascript/channels/consumer.js +0 -6
- data/features/fixtures/rails6/app/app/javascript/channels/index.js +0 -5
- data/features/fixtures/rails6/app/app/javascript/packs/application.js +0 -9
- data/features/fixtures/rails6/app/app/jobs/application_job.rb +0 -7
- data/features/fixtures/rails6/app/app/jobs/notify_job.rb +0 -5
- data/features/fixtures/rails6/app/app/mailers/application_mailer.rb +0 -4
- data/features/fixtures/rails6/app/app/models/application_record.rb +0 -3
- data/features/fixtures/rails6/app/app/models/concerns/.keep +0 -0
- data/features/fixtures/rails6/app/app/models/mongo_model.rb +0 -6
- data/features/fixtures/rails6/app/app/models/user.rb +0 -3
- data/features/fixtures/rails6/app/app/views/layouts/application.html.erb +0 -15
- data/features/fixtures/rails6/app/app/views/layouts/mailer.html.erb +0 -13
- data/features/fixtures/rails6/app/app/views/layouts/mailer.text.erb +0 -1
- data/features/fixtures/rails6/app/babel.config.js +0 -70
- data/features/fixtures/rails6/app/config/application.rb +0 -19
- data/features/fixtures/rails6/app/config/boot.rb +0 -4
- data/features/fixtures/rails6/app/config/cable.yml +0 -13
- data/features/fixtures/rails6/app/config/credentials.yml.enc +0 -1
- data/features/fixtures/rails6/app/config/database.yml +0 -29
- data/features/fixtures/rails6/app/config/environment.rb +0 -5
- data/features/fixtures/rails6/app/config/environments/development.rb +0 -64
- data/features/fixtures/rails6/app/config/environments/production.rb +0 -113
- data/features/fixtures/rails6/app/config/environments/rails_env.rb +0 -56
- data/features/fixtures/rails6/app/config/environments/test.rb +0 -48
- data/features/fixtures/rails6/app/config/initializers/application_controller_renderer.rb +0 -8
- data/features/fixtures/rails6/app/config/initializers/assets.rb +0 -14
- data/features/fixtures/rails6/app/config/initializers/backtrace_silencers.rb +0 -7
- data/features/fixtures/rails6/app/config/initializers/bugsnag.rb +0 -29
- data/features/fixtures/rails6/app/config/initializers/content_security_policy.rb +0 -27
- data/features/fixtures/rails6/app/config/initializers/cookies_serializer.rb +0 -5
- data/features/fixtures/rails6/app/config/initializers/filter_parameter_logging.rb +0 -5
- data/features/fixtures/rails6/app/config/initializers/inflections.rb +0 -16
- data/features/fixtures/rails6/app/config/initializers/mime_types.rb +0 -4
- data/features/fixtures/rails6/app/config/initializers/wrap_parameters.rb +0 -14
- data/features/fixtures/rails6/app/config/locales/en.yml +0 -33
- data/features/fixtures/rails6/app/config/mongoid.yml +0 -23
- data/features/fixtures/rails6/app/config/puma.rb +0 -35
- data/features/fixtures/rails6/app/config/routes.rb +0 -62
- data/features/fixtures/rails6/app/config/secrets.yml +0 -25
- data/features/fixtures/rails6/app/config/spring.rb +0 -6
- data/features/fixtures/rails6/app/config/storage.yml +0 -34
- data/features/fixtures/rails6/app/config/webpack/development.js +0 -5
- data/features/fixtures/rails6/app/config/webpack/environment.js +0 -3
- data/features/fixtures/rails6/app/config/webpack/production.js +0 -5
- data/features/fixtures/rails6/app/config/webpack/rails_env.js +0 -5
- data/features/fixtures/rails6/app/config/webpack/test.js +0 -5
- data/features/fixtures/rails6/app/config/webpacker.yml +0 -121
- data/features/fixtures/rails6/app/config.ru +0 -5
- data/features/fixtures/rails6/app/db/migrate/20180426095545_create_users.rb +0 -17
- data/features/fixtures/rails6/app/db/schema.rb +0 -29
- data/features/fixtures/rails6/app/db/seeds.rb +0 -7
- data/features/fixtures/rails6/app/lib/assets/.keep +0 -0
- data/features/fixtures/rails6/app/lib/tasks/.keep +0 -0
- data/features/fixtures/rails6/app/log/.keep +0 -0
- data/features/fixtures/rails6/app/package.json +0 -15
- data/features/fixtures/rails6/app/postcss.config.js +0 -12
- data/features/fixtures/rails6/app/public/404.html +0 -67
- data/features/fixtures/rails6/app/public/422.html +0 -67
- data/features/fixtures/rails6/app/public/500.html +0 -66
- data/features/fixtures/rails6/app/public/apple-touch-icon-precomposed.png +0 -0
- data/features/fixtures/rails6/app/public/apple-touch-icon.png +0 -0
- data/features/fixtures/rails6/app/public/favicon.ico +0 -0
- data/features/fixtures/rails6/app/public/robots.txt +0 -1
- data/features/fixtures/rails6/app/storage/.keep +0 -0
- data/features/fixtures/rails6/app/test/application_system_test_case.rb +0 -5
- data/features/fixtures/rails6/app/test/channels/application_cable/connection_test.rb +0 -11
- data/features/fixtures/rails6/app/test/controllers/.keep +0 -0
- data/features/fixtures/rails6/app/test/fixtures/.keep +0 -0
- data/features/fixtures/rails6/app/test/fixtures/files/.keep +0 -0
- data/features/fixtures/rails6/app/test/helpers/.keep +0 -0
- data/features/fixtures/rails6/app/test/integration/.keep +0 -0
- data/features/fixtures/rails6/app/test/mailers/.keep +0 -0
- data/features/fixtures/rails6/app/test/models/.keep +0 -0
- data/features/fixtures/rails6/app/test/system/.keep +0 -0
- data/features/fixtures/rails6/app/test/test_helper.rb +0 -13
- data/features/fixtures/rails6/app/tmp/.keep +0 -0
- data/features/fixtures/rails6/app/yarn.lock +0 -6082
- data/features/fixtures/resque/.dockerignore +0 -1
- data/features/fixtures/resque/Dockerfile +0 -14
- data/features/fixtures/resque/Gemfile +0 -6
- data/features/fixtures/resque/Rakefile +0 -4
- data/features/fixtures/resque/app.rb +0 -12
- data/features/fixtures/sidekiq/.dockerignore +0 -2
- data/features/fixtures/sidekiq/Dockerfile +0 -17
- data/features/fixtures/sidekiq/app/Gemfile +0 -7
- data/features/fixtures/sidekiq/app/Rakefile.rb +0 -14
- data/features/fixtures/sidekiq/app/app.rb +0 -35
- data/features/fixtures/sidekiq/app/initializers/HandledError.rb +0 -3
- data/features/fixtures/sidekiq/app/initializers/UnhandledError.rb +0 -3
- data/features/fixtures/sidekiq/payloads/handled_metadata_ca_false.json +0 -11
- data/features/fixtures/sidekiq/payloads/handled_metadata_ca_true.json +0 -12
- data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_false.json +0 -11
- data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_true.json +0 -12
- data/features/fixtures/sinatra1/.dockerignore +0 -1
- data/features/fixtures/sinatra1/Dockerfile +0 -13
- data/features/fixtures/sinatra1/Gemfile +0 -4
- data/features/fixtures/sinatra1/app.rb +0 -9
- data/features/fixtures/sinatra2/.dockerignore +0 -1
- data/features/fixtures/sinatra2/Dockerfile +0 -13
- data/features/fixtures/sinatra2/Gemfile +0 -4
- data/features/fixtures/sinatra2/app.rb +0 -9
- data/features/plain_features/add_tab.feature +0 -55
- data/features/plain_features/app_type.feature +0 -8
- data/features/plain_features/app_version.feature +0 -8
- data/features/plain_features/auto_notify.feature +0 -7
- data/features/plain_features/delivery.feature +0 -20
- data/features/plain_features/exception_data.feature +0 -50
- data/features/plain_features/filters.feature +0 -14
- data/features/plain_features/handled_errors.feature +0 -42
- data/features/plain_features/ignore_classes.feature +0 -11
- data/features/plain_features/ignore_report.feature +0 -14
- data/features/plain_features/proxies.feature +0 -25
- data/features/plain_features/release_stages.feature +0 -20
- data/features/plain_features/report_api_key.feature +0 -16
- data/features/plain_features/report_severity.feature +0 -17
- data/features/plain_features/report_stack_frames.feature +0 -53
- data/features/plain_features/report_user.feature +0 -51
- data/features/plain_features/unhandled_errors.feature +0 -33
- data/features/rails_features/api_key.feature +0 -15
- data/features/rails_features/app_type.feature +0 -24
- data/features/rails_features/app_version.feature +0 -26
- data/features/rails_features/auto_capture_sessions.feature +0 -34
- data/features/rails_features/auto_notify.feature +0 -41
- data/features/rails_features/before_notify.feature +0 -44
- data/features/rails_features/breadcrumbs.feature +0 -43
- data/features/rails_features/handled.feature +0 -42
- data/features/rails_features/ignore_classes.feature +0 -14
- data/features/rails_features/meta_data_filters.feature +0 -16
- data/features/rails_features/mongo_breadcrumbs.feature +0 -26
- data/features/rails_features/on_error.feature +0 -29
- data/features/rails_features/project_root.feature +0 -35
- data/features/rails_features/release_stage.feature +0 -27
- data/features/rails_features/send_code.feature +0 -18
- data/features/rails_features/send_environment.feature +0 -13
- data/features/rails_features/unhandled.feature +0 -16
- data/features/rails_features/user_info.feature +0 -52
- data/features/sidekiq.feature +0 -30
- data/features/steps/ruby_notifier_steps.rb +0 -75
- data/features/support/env.rb +0 -23
- data/issue_template.md +0 -48
- data/spec/breadcrumbs/breadcrumb_spec.rb +0 -93
- data/spec/breadcrumbs/validator_spec.rb +0 -176
- data/spec/bugsnag_spec.rb +0 -366
- data/spec/cleaner_spec.rb +0 -350
- data/spec/code_extractor_spec.rb +0 -129
- data/spec/configuration_spec.rb +0 -445
- data/spec/fixtures/apps/rails-initializer-config/Gemfile +0 -9
- data/spec/fixtures/apps/rails-initializer-config/config/initializers/bugsnag.rb +0 -3
- data/spec/fixtures/apps/rails-initializer-config/config.ru +0 -16
- data/spec/fixtures/apps/rails-invalid-initializer-config/Gemfile +0 -9
- data/spec/fixtures/apps/rails-invalid-initializer-config/config/initializers/bugsnag.rb +0 -3
- data/spec/fixtures/apps/rails-invalid-initializer-config/config.ru +0 -16
- data/spec/fixtures/apps/rails-no-config/Gemfile +0 -9
- data/spec/fixtures/apps/rails-no-config/config.ru +0 -16
- data/spec/fixtures/apps/scripts/Gemfile +0 -3
- data/spec/fixtures/apps/scripts/configure_invalid_key.rb +0 -5
- data/spec/fixtures/apps/scripts/configure_key.rb +0 -5
- data/spec/fixtures/apps/scripts/no_config.rb +0 -3
- data/spec/fixtures/crashes/end_of_file.rb +0 -9
- data/spec/fixtures/crashes/file1.rb +0 -29
- data/spec/fixtures/crashes/file2.rb +0 -25
- data/spec/fixtures/crashes/file_with_long_lines.rb +0 -7
- data/spec/fixtures/crashes/functions.rb +0 -29
- data/spec/fixtures/crashes/short_file.rb +0 -3
- data/spec/fixtures/crashes/start_of_file.rb +0 -9
- data/spec/fixtures/middleware/internal_info_setter.rb +0 -11
- data/spec/fixtures/middleware/public_info_setter.rb +0 -11
- data/spec/fixtures/tasks/Rakefile +0 -26
- data/spec/helper_spec.rb +0 -131
- data/spec/integration_spec.rb +0 -107
- data/spec/integrations/clearance_user_spec.rb +0 -38
- data/spec/integrations/logger_spec.rb +0 -134
- data/spec/integrations/mailman_spec.rb +0 -83
- data/spec/integrations/mongo_spec.rb +0 -262
- data/spec/integrations/que_spec.rb +0 -94
- data/spec/integrations/rack_spec.rb +0 -232
- data/spec/integrations/rails3_request_spec.rb +0 -67
- data/spec/integrations/rake_spec.rb +0 -71
- data/spec/integrations/resque_spec.rb +0 -99
- data/spec/integrations/shoryuken_spec.rb +0 -70
- data/spec/integrations/sidekiq_spec.rb +0 -137
- data/spec/integrations/warden_user_spec.rb +0 -41
- data/spec/middleware/exception_meta_data_spec.rb +0 -104
- data/spec/middleware_spec.rb +0 -254
- data/spec/middleware_stack_spec.rb +0 -151
- data/spec/on_error_spec.rb +0 -332
- data/spec/report_spec.rb +0 -1583
- data/spec/session_tracker_spec.rb +0 -156
- data/spec/spec_helper.rb +0 -99
- data/spec/stacktrace_spec.rb +0 -443
- data/spec/utility/circular_buffer_spec.rb +0 -98
@@ -1,26 +0,0 @@
|
|
1
|
-
if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.0')
|
2
|
-
# Mixing Module#prepend with alias_method can sometimes lead to infinite
|
3
|
-
# mutual recursion, so this is to test that it doesn't happen.
|
4
|
-
mod = Module.new do
|
5
|
-
def execute(args = nil)
|
6
|
-
puts 'In module prepended to Rake::Task'
|
7
|
-
super
|
8
|
-
end
|
9
|
-
end
|
10
|
-
Rake::Task.send(:prepend, mod)
|
11
|
-
end
|
12
|
-
|
13
|
-
require "bugsnag/integrations/rake"
|
14
|
-
|
15
|
-
namespace :test do
|
16
|
-
desc "used by integration_spec to test that Bugsnag::Middleware::Rake runs properly"
|
17
|
-
task :crash do
|
18
|
-
port = ENV['BUGSNAG_TEST_SERVER_PORT']
|
19
|
-
Bugsnag.configure do |config|
|
20
|
-
config.endpoint = "http://localhost:#{port}"
|
21
|
-
config.api_key = "0" * 32
|
22
|
-
end
|
23
|
-
|
24
|
-
raise
|
25
|
-
end
|
26
|
-
end
|
data/spec/helper_spec.rb
DELETED
@@ -1,131 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
require 'set'
|
5
|
-
|
6
|
-
describe Bugsnag::Helpers do
|
7
|
-
describe "trim_if_needed" do
|
8
|
-
it "preserves bool types" do
|
9
|
-
value = Bugsnag::Helpers.trim_if_needed([1, 3, true, "NO", "2", false])
|
10
|
-
expect(value[2]).to be_a(TrueClass)
|
11
|
-
expect(value[5]).to be_a(FalseClass)
|
12
|
-
end
|
13
|
-
|
14
|
-
it "preserves Numeric types" do
|
15
|
-
value = Bugsnag::Helpers.trim_if_needed([1, 3.445, true, "NO", "2", false])
|
16
|
-
expect(value[0]).to be_a(Numeric)
|
17
|
-
expect(value[1]).to be_a(Numeric)
|
18
|
-
end
|
19
|
-
|
20
|
-
it "preserves String types" do
|
21
|
-
value = Bugsnag::Helpers.trim_if_needed([1, 3, true, "NO", "2", false])
|
22
|
-
expect(value[3]).to be_a(String)
|
23
|
-
expect(value[4]).to be_a(String)
|
24
|
-
end
|
25
|
-
|
26
|
-
context "payload length is less than allowed" do
|
27
|
-
it "does not change strings" do
|
28
|
-
value = SecureRandom.hex(4096)
|
29
|
-
expect(Bugsnag::Helpers.trim_if_needed(value)).to eq value
|
30
|
-
end
|
31
|
-
|
32
|
-
it "does not change arrays" do
|
33
|
-
value = 1000.times.map {|i| "#{i} - #{i + 1}" }
|
34
|
-
expect(Bugsnag::Helpers.trim_if_needed(value)).to eq value
|
35
|
-
end
|
36
|
-
|
37
|
-
it "does not change hashes" do
|
38
|
-
value = Hash[*1000.times.map{|i| ["#{i}", i]}.flatten]
|
39
|
-
expect(Bugsnag::Helpers.trim_if_needed(value)).to eq value
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context "payload length is greater than allowed" do
|
44
|
-
it "trims metadata strings" do
|
45
|
-
payload = {
|
46
|
-
:events => [{
|
47
|
-
:metaData => 50000.times.map {|i| "should truncate" }.join(""),
|
48
|
-
:preserved => "Foo"
|
49
|
-
}]
|
50
|
-
}
|
51
|
-
expect(::JSON.dump(payload).length).to be > Bugsnag::Helpers::MAX_PAYLOAD_LENGTH
|
52
|
-
trimmed = Bugsnag::Helpers.trim_if_needed(payload)
|
53
|
-
expect(::JSON.dump(trimmed).length).to be <= Bugsnag::Helpers::MAX_PAYLOAD_LENGTH
|
54
|
-
expect(trimmed[:events][0][:metaData].length).to be <= Bugsnag::Helpers::MAX_STRING_LENGTH
|
55
|
-
expect(trimmed[:events][0][:preserved]).to eq("Foo")
|
56
|
-
end
|
57
|
-
|
58
|
-
it "truncates metadata arrays" do
|
59
|
-
payload = {
|
60
|
-
:events => [{
|
61
|
-
:metaData => 50000.times.map {|i| "should truncate" },
|
62
|
-
:preserved => "Foo"
|
63
|
-
}]
|
64
|
-
}
|
65
|
-
expect(::JSON.dump(payload).length).to be > Bugsnag::Helpers::MAX_PAYLOAD_LENGTH
|
66
|
-
trimmed = Bugsnag::Helpers.trim_if_needed(payload)
|
67
|
-
expect(::JSON.dump(trimmed).length).to be <= Bugsnag::Helpers::MAX_PAYLOAD_LENGTH
|
68
|
-
expect(trimmed[:events][0][:metaData].length).to be <= Bugsnag::Helpers::MAX_ARRAY_LENGTH
|
69
|
-
expect(trimmed[:events][0][:preserved]).to eq("Foo")
|
70
|
-
end
|
71
|
-
|
72
|
-
it "trims stacktrace code" do
|
73
|
-
payload = {
|
74
|
-
:events => [{
|
75
|
-
:exceptions => [{
|
76
|
-
:stacktrace => [
|
77
|
-
{
|
78
|
-
:lineNumber => 1,
|
79
|
-
:file => '/trace1',
|
80
|
-
:code => 50.times.map {|i| SecureRandom.hex(3072) }
|
81
|
-
},
|
82
|
-
{
|
83
|
-
:lineNumber => 2,
|
84
|
-
:file => '/trace2',
|
85
|
-
:code => 50.times.map {|i| SecureRandom.hex(3072) }
|
86
|
-
}
|
87
|
-
]
|
88
|
-
}]
|
89
|
-
}]
|
90
|
-
}
|
91
|
-
expect(::JSON.dump(payload).length).to be > Bugsnag::Helpers::MAX_PAYLOAD_LENGTH
|
92
|
-
trimmed = Bugsnag::Helpers.trim_if_needed(payload)
|
93
|
-
expect(::JSON.dump(trimmed).length).to be <= Bugsnag::Helpers::MAX_PAYLOAD_LENGTH
|
94
|
-
trace = trimmed[:events][0][:exceptions][0][:stacktrace]
|
95
|
-
expect(trace.length).to eq(2)
|
96
|
-
expect(trace[0][:lineNumber]).to eq(1)
|
97
|
-
expect(trace[0][:file]).to eq('/trace1')
|
98
|
-
expect(trace[0][:code]).to be_nil
|
99
|
-
expect(trace[1][:lineNumber]).to eq(2)
|
100
|
-
expect(trace[1][:file]).to eq('/trace2')
|
101
|
-
expect(trace[1][:code]).to be_nil
|
102
|
-
end
|
103
|
-
|
104
|
-
it "trims stacktrace entries" do
|
105
|
-
payload = {
|
106
|
-
:events => [{
|
107
|
-
:exceptions => [{
|
108
|
-
:stacktrace => 18000.times.map do |index|
|
109
|
-
{
|
110
|
-
:lineNumber => index,
|
111
|
-
:file => "/path/to/item_#{index}.rb",
|
112
|
-
:code => { "#{index}" => "puts 'code'" }
|
113
|
-
}
|
114
|
-
end
|
115
|
-
}]
|
116
|
-
}]
|
117
|
-
}
|
118
|
-
expect(::JSON.dump(payload).length).to be > Bugsnag::Helpers::MAX_PAYLOAD_LENGTH
|
119
|
-
trimmed = Bugsnag::Helpers.trim_if_needed(payload)
|
120
|
-
expect(::JSON.dump(trimmed).length).to be <= Bugsnag::Helpers::MAX_PAYLOAD_LENGTH
|
121
|
-
trace = trimmed[:events][0][:exceptions][0][:stacktrace]
|
122
|
-
expect(trace.length).to eq(30)
|
123
|
-
30.times.map do |index|
|
124
|
-
expect(trace[index][:lineNumber]).to eq(index)
|
125
|
-
expect(trace[index][:file]).to eq("/path/to/item_#{index}.rb")
|
126
|
-
expect(trace[index][:code]).to be_nil
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
131
|
-
end
|
data/spec/integration_spec.rb
DELETED
@@ -1,107 +0,0 @@
|
|
1
|
-
require 'webrick'
|
2
|
-
require 'spec_helper'
|
3
|
-
require 'json'
|
4
|
-
|
5
|
-
describe 'Bugsnag' do
|
6
|
-
server = nil
|
7
|
-
queue = Queue.new
|
8
|
-
|
9
|
-
before do
|
10
|
-
server = WEBrick::HTTPServer.new :Port => 0, :Logger => WEBrick::Log.new("/dev/null"), :AccessLog => []
|
11
|
-
server.mount_proc '/' do |req, res|
|
12
|
-
queue.push req.body
|
13
|
-
res.status = 200
|
14
|
-
res.body = "OK\n"
|
15
|
-
end
|
16
|
-
Thread.new{ server.start }
|
17
|
-
end
|
18
|
-
|
19
|
-
after do
|
20
|
-
server.stop
|
21
|
-
queue.clear
|
22
|
-
end
|
23
|
-
|
24
|
-
let(:request) { JSON.parse(queue.pop) }
|
25
|
-
|
26
|
-
it 'should send notifications over the wire' do
|
27
|
-
Bugsnag.configure do |config|
|
28
|
-
config.endpoint = "http://localhost:#{server.config[:Port]}"
|
29
|
-
end
|
30
|
-
WebMock.allow_net_connect!
|
31
|
-
|
32
|
-
Bugsnag.notify 'yo'
|
33
|
-
|
34
|
-
expect(request['events'][0]['exceptions'][0]['message']).to eq('yo')
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'should work with threadpool delivery' do
|
38
|
-
Bugsnag.configure do |config|
|
39
|
-
config.endpoint = "http://localhost:#{server.config[:Port]}"
|
40
|
-
config.delivery_method = :thread_queue
|
41
|
-
end
|
42
|
-
WebMock.allow_net_connect!
|
43
|
-
|
44
|
-
Bugsnag.notify 'yo'
|
45
|
-
|
46
|
-
expect(request['events'][0]['exceptions'][0]['message']).to eq('yo')
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'should work with threadpool delivery after fork' do
|
50
|
-
is_jruby = defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
|
51
|
-
unless is_jruby #jruby doesn't support fork, so this test doesn't apply
|
52
|
-
Bugsnag.configure do |config|
|
53
|
-
config.endpoint = "http://localhost:#{server.config[:Port]}"
|
54
|
-
config.delivery_method = :thread_queue
|
55
|
-
end
|
56
|
-
WebMock.allow_net_connect!
|
57
|
-
|
58
|
-
Bugsnag.notify 'yo'
|
59
|
-
|
60
|
-
pid = Process.fork do
|
61
|
-
Bugsnag.notify 'yo too'
|
62
|
-
end
|
63
|
-
Process.wait(pid)
|
64
|
-
|
65
|
-
expect(queue.length).to eq(2)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
describe 'with a proxy' do
|
70
|
-
proxy = nil
|
71
|
-
pqueue = Queue.new
|
72
|
-
|
73
|
-
before do
|
74
|
-
proxy = WEBrick::HTTPServer.new :Port => 0, :Logger => WEBrick::Log.new("/dev/null"), :AccessLog => []
|
75
|
-
proxy.mount_proc '/' do |req, res|
|
76
|
-
pqueue.push req
|
77
|
-
res.status = 200
|
78
|
-
res.body = "OK\n"
|
79
|
-
end
|
80
|
-
Thread.new{ proxy.start }
|
81
|
-
end
|
82
|
-
after do
|
83
|
-
proxy.stop
|
84
|
-
end
|
85
|
-
|
86
|
-
let(:proxied_request) { pqueue.pop }
|
87
|
-
|
88
|
-
it 'should use a proxy when configured' do
|
89
|
-
Bugsnag.configure do |config|
|
90
|
-
|
91
|
-
config.endpoint = "http://localhost:#{server.config[:Port]}"
|
92
|
-
|
93
|
-
config.proxy_host = 'localhost'
|
94
|
-
config.proxy_port = proxy.config[:Port]
|
95
|
-
config.proxy_user = 'conrad'
|
96
|
-
config.proxy_password = '$ecret'
|
97
|
-
end
|
98
|
-
|
99
|
-
Bugsnag.notify 'oy'
|
100
|
-
|
101
|
-
r = proxied_request
|
102
|
-
|
103
|
-
expect(r.header['proxy-authorization'].first).to eq("Basic Y29ucmFkOiRlY3JldA==")
|
104
|
-
expect(r.request_line).to eq("POST http://localhost:#{server.config[:Port]}/ HTTP/1.1\r\n")
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe Bugsnag::Middleware::ClearanceUser do
|
4
|
-
it "updates the reports user with warden parameters" do
|
5
|
-
callback = double
|
6
|
-
|
7
|
-
user = double
|
8
|
-
allow(user).to receive_messages(
|
9
|
-
:email => "TEST_EMAIL",
|
10
|
-
:name => "TEST_NAME",
|
11
|
-
:created_at => "TEST_NOW"
|
12
|
-
)
|
13
|
-
|
14
|
-
clearance = double
|
15
|
-
allow(clearance).to receive_messages(
|
16
|
-
:signed_in? => true,
|
17
|
-
:current_user => user
|
18
|
-
)
|
19
|
-
|
20
|
-
report = double("Bugsnag::Report")
|
21
|
-
expect(report).to receive(:request_data).exactly(5).times.and_return({
|
22
|
-
:rack_env => {
|
23
|
-
:clearance => clearance
|
24
|
-
}
|
25
|
-
})
|
26
|
-
|
27
|
-
expect(report).to receive(:user=).with({
|
28
|
-
:email => "TEST_EMAIL",
|
29
|
-
:name => "TEST_NAME",
|
30
|
-
:created_at => "TEST_NOW"
|
31
|
-
})
|
32
|
-
|
33
|
-
expect(callback).to receive(:call).with(report)
|
34
|
-
|
35
|
-
middleware = Bugsnag::Middleware::ClearanceUser.new(callback)
|
36
|
-
middleware.call(report)
|
37
|
-
end
|
38
|
-
end
|
@@ -1,134 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'Configuration.logger' do
|
4
|
-
|
5
|
-
before do
|
6
|
-
@env = {}
|
7
|
-
end
|
8
|
-
|
9
|
-
context 'in a Rails app' do
|
10
|
-
key_warning = '[Bugsnag]: No valid API key has been set, notifications will not be sent'
|
11
|
-
is_jruby = defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
|
12
|
-
incompatible = (RUBY_VERSION < '2.0.0') || is_jruby
|
13
|
-
|
14
|
-
before do
|
15
|
-
skip "Incompatible with Ruby <2.0 and JRuby" if incompatible
|
16
|
-
@env['RACK_ENV'] = 'production'
|
17
|
-
end
|
18
|
-
|
19
|
-
def run_app(name)
|
20
|
-
out_reader, out_writer = IO.pipe
|
21
|
-
Dir.chdir(File.join(File.dirname(__FILE__), "../fixtures/apps/#{name}")) do
|
22
|
-
Bundler.with_clean_env do
|
23
|
-
pid = Process.spawn('bundle install',
|
24
|
-
out: out_writer.fileno,
|
25
|
-
err: out_writer.fileno)
|
26
|
-
Process.waitpid(pid, 0)
|
27
|
-
pid = Process.spawn(@env, 'bundle exec rackup config.ru',
|
28
|
-
out: out_writer.fileno,
|
29
|
-
err: out_writer.fileno)
|
30
|
-
sleep(2)
|
31
|
-
Process.kill(1, pid)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
out_writer.close
|
35
|
-
output = ""
|
36
|
-
output << out_reader.gets until out_reader.eof?
|
37
|
-
output
|
38
|
-
end
|
39
|
-
context 'sets an API key using the BUGSNAG_API_KEY env var' do
|
40
|
-
it 'does not log a warning' do
|
41
|
-
skip "Incompatible with Ruby <2.0 and JRuby" if incompatible
|
42
|
-
@env['BUGSNAG_API_KEY'] = 'c34a2472bd240ac0ab0f52715bbdc05d'
|
43
|
-
output = run_app('rails-no-config')
|
44
|
-
expect(output).not_to include(key_warning)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
context 'sets an API key using the bugsnag initializer' do
|
49
|
-
it 'does not log a warning' do
|
50
|
-
skip "Incompatible with Ruby <2.0 and JRuby" if incompatible
|
51
|
-
output = run_app('rails-initializer-config')
|
52
|
-
expect(output).not_to include(key_warning)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
context 'skips setting an API key' do
|
57
|
-
it 'logs a warning' do
|
58
|
-
skip "Incompatible with Ruby <2.0 and JRuby" if incompatible
|
59
|
-
output = run_app('rails-no-config')
|
60
|
-
expect(output).to include(key_warning)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
context 'when the API key is invalid in the bugsnag initializer' do
|
65
|
-
it 'logs a warning' do
|
66
|
-
skip "Incompatible with Ruby <2.0 and JRuby" if incompatible
|
67
|
-
output = run_app('rails-invalid-initializer-config')
|
68
|
-
expect(output).to include(key_warning)
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
context 'sets an invalid API key using the BUGSNAG_API_KEY env var' do
|
73
|
-
it 'logs a warning' do
|
74
|
-
skip "Incompatible with Ruby <2.0 and JRuby" if incompatible
|
75
|
-
@env['BUGSNAG_API_KEY'] = 'not a real key'
|
76
|
-
output = run_app('rails-no-config')
|
77
|
-
expect(output).to include(key_warning)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
context 'in a script' do
|
83
|
-
key_warning = /\[Bugsnag\] .* No valid API key has been set, notifications will not be sent/
|
84
|
-
|
85
|
-
def run_app(name)
|
86
|
-
output = ''
|
87
|
-
Dir.chdir(File.join(File.dirname(__FILE__), "../fixtures/apps/scripts")) do
|
88
|
-
Bundler.with_clean_env do
|
89
|
-
IO.popen([@env, 'bundle', 'exec', 'ruby', "#{name}.rb", err: [:child, :out]]) do |io|
|
90
|
-
output << io.read
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
output
|
95
|
-
end
|
96
|
-
|
97
|
-
context 'sets an API key using the BUGSNAG_API_KEY env var' do
|
98
|
-
it 'does not log a warning' do
|
99
|
-
@env['BUGSNAG_API_KEY'] = 'c34a2472bd240ac0ab0f52715bbdc05d'
|
100
|
-
output = run_app('no_config')
|
101
|
-
expect(output).not_to match(key_warning)
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
context 'sets an API key using Bugsnag.configure' do
|
106
|
-
it 'does not log a warning' do
|
107
|
-
output = run_app('configure_key')
|
108
|
-
expect(output).not_to match(key_warning)
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
context 'sets an invalid API key using Bugsnag.configure' do
|
113
|
-
it 'logs a warning' do
|
114
|
-
output = run_app('configure_invalid_key')
|
115
|
-
expect(output).to match(key_warning)
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
context 'sets an invalid API key using the BUGSNAG_API_KEY env var' do
|
120
|
-
it 'logs a warning' do
|
121
|
-
@env['BUGSNAG_API_KEY'] = 'bad key bad key whatcha gonna do'
|
122
|
-
output = run_app('no_config')
|
123
|
-
expect(output).to match(key_warning)
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
context 'skips setting an API key' do
|
128
|
-
it 'logs a warning' do
|
129
|
-
output = run_app('no_config')
|
130
|
-
expect(output).to match(key_warning)
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe 'Bugsnag::Mailman', :order => :defined do
|
4
|
-
before do
|
5
|
-
unless defined?(::Mailman)
|
6
|
-
@mocked_mailman = true
|
7
|
-
class Mailman
|
8
|
-
end
|
9
|
-
module Kernel
|
10
|
-
alias_method :old_require, :require
|
11
|
-
def require(path)
|
12
|
-
old_require(path) unless /^mailman/.match(path)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
it "should load Bugsnag::Mailman" do
|
19
|
-
config = double('mailman-config')
|
20
|
-
allow(Mailman).to receive(:config).and_return(config)
|
21
|
-
expect(config).to receive(:respond_to?).with(:middleware).and_return(true)
|
22
|
-
middleware = double('mailman-config-middleware')
|
23
|
-
expect(config).to receive(:middleware).and_return(middleware)
|
24
|
-
expect(middleware).to receive(:add).with(any_args)
|
25
|
-
|
26
|
-
#Kick off
|
27
|
-
require './lib/bugsnag/integrations/mailman'
|
28
|
-
end
|
29
|
-
|
30
|
-
it "can be called" do
|
31
|
-
config = double('config')
|
32
|
-
allow(Bugsnag).to receive(:configuration).and_return(config)
|
33
|
-
int_middleware = double('internal_middleware')
|
34
|
-
expect(config).to receive(:internal_middleware).and_return(int_middleware)
|
35
|
-
expect(int_middleware).to receive(:use).with(Bugsnag::Middleware::Mailman)
|
36
|
-
expect(config).to receive(:app_type=).with("mailman")
|
37
|
-
|
38
|
-
integration = Bugsnag::Mailman.new
|
39
|
-
|
40
|
-
mail = double('mail')
|
41
|
-
expect(config).to receive(:set_request_data).with(:mailman_msg, mail)
|
42
|
-
expect(mail).to receive(:to_s).and_return(mail)
|
43
|
-
allow(config).to receive(:clear_request_data)
|
44
|
-
|
45
|
-
exception = RuntimeError.new('oops')
|
46
|
-
report = double('report')
|
47
|
-
expect(Bugsnag).to receive(:notify).with(exception, true).and_yield(report)
|
48
|
-
expect(report).to receive(:severity=).with('error')
|
49
|
-
expect(report).to receive(:severity_reason=).with({
|
50
|
-
:type => Bugsnag::Report::UNHANDLED_EXCEPTION_MIDDLEWARE,
|
51
|
-
:attributes => Bugsnag::Mailman::FRAMEWORK_ATTRIBUTES
|
52
|
-
})
|
53
|
-
expect{integration.call(mail) {raise exception}}.to raise_error(exception)
|
54
|
-
end
|
55
|
-
|
56
|
-
after do
|
57
|
-
Object.send(:remove_const, :Mailman) if @mocked_mailman
|
58
|
-
module Kernel
|
59
|
-
alias_method :require, :old_require
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
|
65
|
-
describe Bugsnag::Middleware::Mailman do
|
66
|
-
it "adds mailman message to the metadata" do
|
67
|
-
callback = double
|
68
|
-
|
69
|
-
report = double("Bugsnag::Report")
|
70
|
-
expect(report).to receive(:request_data).and_return({
|
71
|
-
:mailman_msg => "test message"
|
72
|
-
})
|
73
|
-
|
74
|
-
expect(report).to receive(:add_tab).with(:mailman, {
|
75
|
-
"message" => "test message"
|
76
|
-
})
|
77
|
-
|
78
|
-
expect(callback).to receive(:call).with(report)
|
79
|
-
|
80
|
-
middleware = Bugsnag::Middleware::Mailman.new(callback)
|
81
|
-
middleware.call(report)
|
82
|
-
end
|
83
|
-
end
|