rollbar 2.18.2 → 2.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +15 -0
  3. data/.travis.yml +155 -93
  4. data/Gemfile +19 -13
  5. data/README.md +12 -0
  6. data/gemfiles/rails30.gemfile +17 -10
  7. data/gemfiles/rails31.gemfile +20 -12
  8. data/gemfiles/rails32.gemfile +16 -7
  9. data/gemfiles/rails40.gemfile +16 -5
  10. data/gemfiles/rails41.gemfile +15 -5
  11. data/gemfiles/rails42.gemfile +25 -14
  12. data/gemfiles/rails50.gemfile +15 -8
  13. data/gemfiles/rails51.gemfile +15 -8
  14. data/gemfiles/rails52.gemfile +62 -0
  15. data/gemfiles/ruby_1_8_and_1_9_2.gemfile +2 -2
  16. data/lib/rails/rollbar_runner.rb +16 -1
  17. data/lib/rollbar/capistrano.rb +71 -39
  18. data/lib/rollbar/capistrano3.rb +53 -1
  19. data/lib/rollbar/capistrano_tasks.rb +131 -0
  20. data/lib/rollbar/configuration.rb +13 -4
  21. data/lib/rollbar/delay/active_job.rb +17 -0
  22. data/lib/rollbar/delay/sidekiq.rb +3 -1
  23. data/lib/rollbar/delay/thread.rb +1 -1
  24. data/lib/rollbar/deploy.rb +69 -0
  25. data/lib/rollbar/item.rb +17 -6
  26. data/lib/rollbar/middleware/js.rb +25 -3
  27. data/lib/rollbar/middleware/js/json_value.rb +26 -0
  28. data/lib/rollbar/notifier.rb +32 -13
  29. data/lib/rollbar/plugins/active_job.rb +3 -0
  30. data/lib/rollbar/plugins/rails/controller_methods.rb +2 -1
  31. data/lib/rollbar/plugins/rails/railtie_mixin.rb +7 -1
  32. data/lib/rollbar/rake_tasks.rb +126 -67
  33. data/lib/rollbar/scrubbers/params.rb +6 -0
  34. data/lib/rollbar/util.rb +75 -45
  35. data/lib/rollbar/util/hash.rb +15 -6
  36. data/lib/rollbar/version.rb +1 -1
  37. data/rollbar.gemspec +2 -3
  38. metadata +9 -261
  39. data/lib/rollbar/tasks/rollbar.cap +0 -47
  40. data/spec/cacert.pem +0 -3988
  41. data/spec/controllers/home_controller_spec.rb +0 -480
  42. data/spec/delay/sidekiq_spec.rb +0 -61
  43. data/spec/delay/sucker_punch_spec.rb +0 -25
  44. data/spec/delayed/backend/test.rb +0 -140
  45. data/spec/delayed/serialization/test.rb +0 -0
  46. data/spec/dummyapp/.gitignore +0 -73
  47. data/spec/dummyapp/Rakefile +0 -7
  48. data/spec/dummyapp/app/assets/javascripts/application.js +0 -3
  49. data/spec/dummyapp/app/assets/stylesheets/application.css.scss +0 -37
  50. data/spec/dummyapp/app/controllers/application_controller.rb +0 -3
  51. data/spec/dummyapp/app/controllers/home_controller.rb +0 -60
  52. data/spec/dummyapp/app/controllers/users_controller.rb +0 -17
  53. data/spec/dummyapp/app/helpers/.gitkeep +0 -0
  54. data/spec/dummyapp/app/mailers/.gitkeep +0 -0
  55. data/spec/dummyapp/app/models/.gitkeep +0 -0
  56. data/spec/dummyapp/app/models/book.rb +0 -5
  57. data/spec/dummyapp/app/models/post.rb +0 -9
  58. data/spec/dummyapp/app/models/user.rb +0 -9
  59. data/spec/dummyapp/app/views/devise/registrations/edit.html.erb +0 -27
  60. data/spec/dummyapp/app/views/devise/registrations/new.html.erb +0 -20
  61. data/spec/dummyapp/app/views/devise/shared/_links.html.erb +0 -25
  62. data/spec/dummyapp/app/views/home/cause_exception.html.erb +0 -1
  63. data/spec/dummyapp/app/views/home/index.html.erb +0 -4
  64. data/spec/dummyapp/app/views/home/report_exception.html.erb +0 -1
  65. data/spec/dummyapp/app/views/js/test.html.erb +0 -1
  66. data/spec/dummyapp/app/views/layouts/_messages.html.erb +0 -5
  67. data/spec/dummyapp/app/views/layouts/_navigation.html.erb +0 -21
  68. data/spec/dummyapp/app/views/layouts/application.html.erb +0 -25
  69. data/spec/dummyapp/app/views/layouts/simple.html.erb +0 -18
  70. data/spec/dummyapp/app/views/users/index.html.erb +0 -8
  71. data/spec/dummyapp/app/views/users/show.html.erb +0 -3
  72. data/spec/dummyapp/config.ru +0 -4
  73. data/spec/dummyapp/config/application.rb +0 -59
  74. data/spec/dummyapp/config/boot.rb +0 -10
  75. data/spec/dummyapp/config/database.yml +0 -25
  76. data/spec/dummyapp/config/environment.rb +0 -5
  77. data/spec/dummyapp/config/environments/development.rb +0 -37
  78. data/spec/dummyapp/config/environments/production.rb +0 -67
  79. data/spec/dummyapp/config/environments/test.rb +0 -37
  80. data/spec/dummyapp/config/initializers/backtrace_silencers.rb +0 -7
  81. data/spec/dummyapp/config/initializers/inflections.rb +0 -15
  82. data/spec/dummyapp/config/initializers/mime_types.rb +0 -5
  83. data/spec/dummyapp/config/initializers/rollbar.rb +0 -26
  84. data/spec/dummyapp/config/initializers/secret_token.rb +0 -7
  85. data/spec/dummyapp/config/initializers/session_store.rb +0 -8
  86. data/spec/dummyapp/config/initializers/wrap_parameters.rb +0 -16
  87. data/spec/dummyapp/config/locales/devise.en.yml +0 -58
  88. data/spec/dummyapp/config/locales/en.yml +0 -5
  89. data/spec/dummyapp/config/routes.rb +0 -17
  90. data/spec/dummyapp/config/secrets.yml +0 -2
  91. data/spec/dummyapp/db/migrate/20121121184652_devise_create_users.rb +0 -46
  92. data/spec/dummyapp/db/migrate/20121121184654_add_name_to_users.rb +0 -5
  93. data/spec/dummyapp/db/migrate/20161219184410_create_books.rb +0 -10
  94. data/spec/dummyapp/db/migrate/20161219185529_add_username_to_users.rb +0 -5
  95. data/spec/dummyapp/db/schema.rb +0 -41
  96. data/spec/dummyapp/db/seeds.rb +0 -12
  97. data/spec/dummyapp/lib/assets/.gitkeep +0 -0
  98. data/spec/dummyapp/public/404.html +0 -26
  99. data/spec/dummyapp/public/422.html +0 -26
  100. data/spec/dummyapp/public/500.html +0 -25
  101. data/spec/dummyapp/public/favicon.ico +0 -0
  102. data/spec/dummyapp/script/rails +0 -6
  103. data/spec/fixtures/file1 +0 -1
  104. data/spec/fixtures/file2 +0 -1
  105. data/spec/fixtures/payloads/message.json +0 -25
  106. data/spec/fixtures/payloads/sample.trace.json +0 -275
  107. data/spec/fixtures/payloads/sample.trace_chain.json +0 -530
  108. data/spec/fixtures/plugins/dummy1.rb +0 -5
  109. data/spec/fixtures/plugins/dummy2.rb +0 -5
  110. data/spec/generators/rollbar/rollbar_generator_rails30_spec.rb +0 -31
  111. data/spec/generators/rollbar/rollbar_generator_spec.rb +0 -51
  112. data/spec/requests/home_spec.rb +0 -49
  113. data/spec/rollbar/configuration_spec.rb +0 -74
  114. data/spec/rollbar/delay/delayed_job_spec.rb +0 -22
  115. data/spec/rollbar/delay/girl_friday_spec.rb +0 -41
  116. data/spec/rollbar/delay/resque_spec.rb +0 -37
  117. data/spec/rollbar/delay/shoryuken_spec.rb +0 -44
  118. data/spec/rollbar/delay/thread_spec.rb +0 -27
  119. data/spec/rollbar/encoding/encoder_spec.rb +0 -63
  120. data/spec/rollbar/item/backtrace_spec.rb +0 -26
  121. data/spec/rollbar/item/frame_spec.rb +0 -267
  122. data/spec/rollbar/item_spec.rb +0 -736
  123. data/spec/rollbar/json/oj_spec.rb +0 -18
  124. data/spec/rollbar/json_spec.rb +0 -110
  125. data/spec/rollbar/lazy_store_spec.rb +0 -99
  126. data/spec/rollbar/logger_proxy_spec.rb +0 -69
  127. data/spec/rollbar/logger_spec.rb +0 -124
  128. data/spec/rollbar/middleware/js_spec.rb +0 -428
  129. data/spec/rollbar/middleware/sinatra_spec.rb +0 -197
  130. data/spec/rollbar/notifier_spec.rb +0 -67
  131. data/spec/rollbar/plugin_spec.rb +0 -209
  132. data/spec/rollbar/plugins/active_job_spec.rb +0 -45
  133. data/spec/rollbar/plugins/delayed_job/job_data_spec.rb +0 -48
  134. data/spec/rollbar/plugins/delayed_job_spec.rb +0 -129
  135. data/spec/rollbar/plugins/rack_spec.rb +0 -152
  136. data/spec/rollbar/plugins/rails_js_spec.rb +0 -19
  137. data/spec/rollbar/plugins/rake_spec.rb +0 -34
  138. data/spec/rollbar/plugins/resque/failure_spec.rb +0 -36
  139. data/spec/rollbar/plugins/sidekiq_spec.rb +0 -169
  140. data/spec/rollbar/plugins/validations_spec.rb +0 -56
  141. data/spec/rollbar/plugins_spec.rb +0 -68
  142. data/spec/rollbar/request_data_extractor_spec.rb +0 -321
  143. data/spec/rollbar/scrubbers/params_spec.rb +0 -598
  144. data/spec/rollbar/scrubbers/url_spec.rb +0 -240
  145. data/spec/rollbar/scrubbers_spec.rb +0 -31
  146. data/spec/rollbar/sidekig/clear_scope_spec.rb +0 -19
  147. data/spec/rollbar/truncation/frames_strategy_spec.rb +0 -70
  148. data/spec/rollbar/truncation/min_body_strategy_spec.rb +0 -57
  149. data/spec/rollbar/truncation/strings_strategy_spec.rb +0 -89
  150. data/spec/rollbar/truncation_spec.rb +0 -27
  151. data/spec/rollbar/util/hash_spec.rb +0 -22
  152. data/spec/rollbar/util/ip_anonymizer_spec.rb +0 -30
  153. data/spec/rollbar/util_spec.rb +0 -80
  154. data/spec/rollbar_bc_spec.rb +0 -380
  155. data/spec/rollbar_spec.rb +0 -1737
  156. data/spec/spec_helper.rb +0 -84
  157. data/spec/support/cause_exception.rb +0 -1
  158. data/spec/support/encoding_helpers.rb +0 -8
  159. data/spec/support/encodings/iso_8859_9 +0 -1
  160. data/spec/support/fixture_helpers.rb +0 -10
  161. data/spec/support/get_ip_raising.rb +0 -7
  162. data/spec/support/helpers.rb +0 -5
  163. data/spec/support/matchers.rb +0 -23
  164. data/spec/support/notifier_helpers.rb +0 -57
  165. data/spec/support/rollbar_api.rb +0 -57
  166. data/spec/support/secure_headers_mocks.rb +0 -83
  167. data/spec/support/shared_contexts.rb +0 -12
@@ -1,197 +0,0 @@
1
- require 'spec_helper'
2
- require 'rollbar/middleware/sinatra'
3
- require 'sinatra/base'
4
- require 'rack/test'
5
-
6
- class SinatraDummy < Sinatra::Base
7
- class DummyError < StandardError; end
8
-
9
- use Rollbar::Middleware::Sinatra
10
-
11
- get '/foo' do
12
- raise DummyError.new
13
- end
14
-
15
- get '/bar' do
16
- 'this will not crash'
17
- end
18
-
19
- post '/crash_post' do
20
- raise DummyError.new
21
- end
22
- end
23
-
24
- describe Rollbar::Middleware::Sinatra, :reconfigure_notifier => true do
25
- include Rack::Test::Methods
26
-
27
- def app
28
- SinatraDummy
29
- end
30
-
31
- let(:logger_mock) { double('logger').as_null_object }
32
-
33
- before do
34
- Rollbar.configure do |config|
35
- config.logger = logger_mock
36
- config.framework = 'Sinatra'
37
- end
38
- end
39
-
40
- let(:uncaught_level) do
41
- Rollbar.configuration.uncaught_exception_level
42
- end
43
-
44
- let(:expected_report_args) do
45
- [uncaught_level, exception, { :use_exception_level_filters => true }]
46
- end
47
-
48
- describe '#call' do
49
- context 'for a crashing endpoint' do
50
- # this is the default for test mode in Sinatra
51
- context 'with raise_errors? == true' do
52
- let(:exception) { kind_of(SinatraDummy::DummyError) }
53
-
54
- before do
55
- allow(app.settings).to receive(:raise_errors?).and_return(true)
56
- end
57
-
58
- it 'reports the error to Rollbar API and raises error' do
59
- expect(Rollbar).to receive(:log).with(*expected_report_args)
60
-
61
- expect do
62
- get '/foo'
63
- end.to raise_error(SinatraDummy::DummyError)
64
- end
65
- end
66
-
67
- context 'with raise_errors? == false' do
68
- let(:exception) { kind_of(SinatraDummy::DummyError) }
69
-
70
- before do
71
- allow(app.settings).to receive(:raise_errors?).and_return(false)
72
- end
73
-
74
- it 'reports the error to Rollbar, but nothing is raised' do
75
- expect(Rollbar).to receive(:log).with(*expected_report_args)
76
- get '/foo'
77
- end
78
- end
79
- end
80
-
81
- context 'for a NOT crashing endpoint' do
82
- it 'doesnt report any error to Rollbar API' do
83
- expect(Rollbar).not_to receive(:log)
84
- get '/bar'
85
- end
86
- end
87
-
88
- context 'if the middleware itself fails' do
89
- let(:exception) { Exception.new }
90
-
91
- before do
92
- allow_any_instance_of(described_class).to receive(:framework_error).and_raise(exception)
93
- allow(app.settings).to receive(:raise_errors?).and_return(false)
94
- end
95
-
96
- it 'reports the report error' do
97
- expect(Rollbar).to receive(:log).with(*expected_report_args)
98
-
99
- expect do
100
- get '/foo'
101
- end.to raise_error(exception)
102
- end
103
- end
104
-
105
- context 'with GET parameters' do
106
- let(:exception) { kind_of(SinatraDummy::DummyError) }
107
- let(:params) do
108
- {
109
- 'key' => 'value'
110
- }
111
- end
112
-
113
- it 'appear in the sent payload' do
114
- expect do
115
- get '/foo', params
116
- end.to raise_error(exception)
117
-
118
- expect(Rollbar.last_report[:request][:GET]).to be_eql(params)
119
- end
120
- end
121
-
122
- context 'with POST parameters' do
123
- let(:exception) { kind_of(SinatraDummy::DummyError) }
124
- let(:params) do
125
- {
126
- 'key' => 'value'
127
- }
128
- end
129
-
130
- it 'appear in the sent payload' do
131
- expect do
132
- post '/crash_post', params
133
- end.to raise_error(exception)
134
-
135
- expect(Rollbar.last_report[:request][:POST]).to be_eql(params)
136
- end
137
- end
138
-
139
- context 'with JSON POST parameters' do
140
- let(:exception) { kind_of(SinatraDummy::DummyError) }
141
- let(:params) do
142
- {
143
- 'key' => 'value'
144
- }
145
- end
146
-
147
- it 'appears in the sent payload when application/json is the content type' do
148
- expect do
149
- post '/crash_post', params.to_json, { 'CONTENT_TYPE' => 'application/json' }
150
- end.to raise_error(exception)
151
-
152
- expect(Rollbar.last_report[:request][:body]).to be_eql(params.to_json)
153
- end
154
-
155
- it 'appears in the sent payload when the accepts header contains json' do
156
- expect do
157
- post '/crash_post', params, { 'ACCEPT' => 'application/vnd.github.v3+json' }
158
- end.to raise_error(exception)
159
-
160
- expect(Rollbar.last_report[:request][:POST]).to be_eql(params)
161
- end
162
- end
163
-
164
- it 'resets the notifier scope in every request' do
165
- get '/bar'
166
- id1 = Rollbar.scope_object.object_id
167
-
168
- get '/bar'
169
- id2 = Rollbar.scope_object.object_id
170
-
171
- expect(id1).not_to be_eql(id2)
172
- end
173
-
174
- context 'with person data' do
175
- let(:exception) { kind_of(SinatraDummy::DummyError) }
176
- let(:person_data) do
177
- { 'email' => 'person@example.com' }
178
- end
179
-
180
- it 'includes person data from env' do
181
- expect do
182
- get '/foo', {}, 'rollbar.person_data' => person_data
183
- end.to raise_error(exception)
184
-
185
- expect(Rollbar.last_report[:person]).to be_eql(person_data)
186
- end
187
-
188
- it 'includes empty person data when not in env' do
189
- expect do
190
- get '/foo'
191
- end.to raise_error(exception)
192
-
193
- expect(Rollbar.last_report[:person]).to be_eql({})
194
- end
195
- end
196
- end
197
- end
@@ -1,67 +0,0 @@
1
- require 'rollbar'
2
- require 'rollbar/notifier'
3
-
4
- describe Rollbar::Notifier do
5
- describe '#scope' do
6
- let(:new_scope) do
7
- { 'foo' => 'bar' }
8
- end
9
- let(:new_config) do
10
- { 'environment' => 'foo' }
11
- end
12
-
13
- it 'creates a new notifier with merged scope and configuration' do
14
- new_notifier = subject.scope(new_scope, new_config)
15
-
16
- expect(new_notifier).not_to be(subject)
17
- expect(subject.configuration.environment).to be_eql(nil)
18
- expect(new_notifier.configuration.environment).to be_eql('foo')
19
- expect(new_notifier.scope_object['foo']).to be_eql('bar')
20
- expect(new_notifier.configuration).not_to be(subject.configuration)
21
- expect(new_notifier.scope_object).not_to be(subject.scope_object)
22
- end
23
- end
24
-
25
- describe '#scope!' do
26
- let(:new_scope) do
27
- { 'foo' => 'bar' }
28
- end
29
- let(:new_config) do
30
- { 'environment' => 'foo' }
31
- end
32
-
33
- it 'mutates the notifier with a merged scope and configuration' do
34
- result = subject.scope!(new_scope, new_config)
35
-
36
- expect(result).to be(subject)
37
- expect(subject.configuration.environment).to be_eql('foo')
38
- expect(subject.scope_object['foo']).to be_eql('bar')
39
- expect(subject.configuration).to be(subject.configuration)
40
- expect(subject.scope_object).to be(subject.scope_object)
41
- end
42
- end
43
-
44
- if RUBY_PLATFORM == 'java'
45
- describe '#extract_arguments' do
46
- # See https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html
47
- # for more background
48
- it 'extracts java.lang.Exception' do
49
- begin
50
- raise java.lang.Exception.new('Hello')
51
- rescue => e
52
- message, exception, extra = Rollbar::Notifier.new.send(:extract_arguments, [e])
53
- expect(exception).to eq(e)
54
- end
55
- end
56
-
57
- it 'extracts java.lang.Error' do
58
- begin
59
- raise java.lang.AssertionError.new('Hello')
60
- rescue java.lang.Error => e
61
- message, exception, extra = Rollbar::Notifier.new.send(:extract_arguments, [e])
62
- expect(exception).to eq(e)
63
- end
64
- end
65
- end
66
- end
67
- end
@@ -1,209 +0,0 @@
1
- require 'spec_helper'
2
- require 'rollbar/plugin'
3
-
4
- describe Rollbar::Plugin do
5
- describe '#load!' do
6
- subject { described_class.new(:plugin) }
7
-
8
- before { subject.instance_eval(&plugin_proc) }
9
-
10
- context 'with requires not passing' do
11
- let(:dummy_object) { '' }
12
- let(:plugin_proc) do
13
- dummy = dummy_object
14
-
15
- proc do
16
- require_dependency('rollbar')
17
- dependency do
18
- true
19
- end
20
-
21
- execute do
22
- dummy.upcase
23
- end
24
-
25
- execute do
26
- dummy.downcase
27
- end
28
- end
29
- end
30
-
31
- it 'doesnt finish loading the plugin' do
32
- expect(dummy_object).to receive(:upcase)
33
- expect(dummy_object).to receive(:downcase)
34
-
35
- subject.load!
36
-
37
- expect(subject.loaded).to be_eql(true)
38
- end
39
- end
40
-
41
- context 'with requires not passing' do
42
- let(:dummy_object) { '' }
43
- let(:plugin_proc) do
44
- dummy = dummy_object
45
-
46
- proc do
47
- require_dependency('sure-this-doesnt-exists')
48
- dependency do
49
- true
50
- end
51
-
52
- execute do
53
- dummy.upcase
54
- end
55
-
56
- execute do
57
- dummy.downcase
58
- end
59
- end
60
- end
61
-
62
- it 'doesnt finish loading the plugin' do
63
- expect(dummy_object).not_to receive(:upcase)
64
- expect(dummy_object).not_to receive(:downcase)
65
-
66
- subject.load!
67
-
68
- expect(subject.loaded).to be_eql(false)
69
- end
70
- end
71
-
72
- context 'with true dependencies' do
73
- let(:dummy_object) { '' }
74
- let(:plugin_proc) do
75
- dummy = dummy_object
76
-
77
- proc do
78
- dependency do
79
- true
80
- end
81
-
82
- dependency do
83
- 1 == 1.0
84
- end
85
-
86
- execute do
87
- dummy.upcase
88
- end
89
-
90
- execute do
91
- dummy.downcase
92
- end
93
- end
94
- end
95
-
96
- it 'calls the callables' do
97
- expect(dummy_object).to receive(:upcase).once
98
- expect(dummy_object).to receive(:downcase).once
99
-
100
- subject.load!
101
-
102
- expect(subject.loaded).to be_eql(true)
103
- end
104
- end
105
-
106
- context 'with dependencies failing' do
107
- let(:dummy_object) { '' }
108
- let(:plugin_proc) do
109
- dummy = dummy_object
110
-
111
- proc do
112
- dependency do
113
- true
114
- end
115
-
116
- dependency do
117
- raise StandardError.new('the-error')
118
- end
119
-
120
- execute do
121
- dummy.upcase
122
- end
123
-
124
- execute do
125
- dummy.downcase
126
- end
127
- end
128
- end
129
-
130
- it 'doesnt finish loading the plugin' do
131
- expect(dummy_object).not_to receive(:upcase)
132
- expect(dummy_object).not_to receive(:downcase)
133
- expect(Rollbar).to receive(:log_error).with("Error trying to load plugin 'plugin': StandardError, the-error")
134
-
135
- subject.load!
136
-
137
- expect(subject.loaded).to be_eql(false)
138
- end
139
- end
140
-
141
- context 'with callables failing' do
142
- let(:dummy_object) { '' }
143
- let(:plugin_proc) do
144
- dummy = dummy_object
145
-
146
- proc do
147
- dependency do
148
- true
149
- end
150
-
151
- dependency do
152
- 1 == 1.0
153
- end
154
-
155
- execute do
156
- raise StandardError.new('the-error')
157
- end
158
-
159
- execute do
160
- dummy.downcase
161
- end
162
- end
163
- end
164
-
165
- it 'doesnt finish loading the plugin' do
166
- expect(dummy_object).not_to receive(:downcase)
167
- expect(Rollbar).to receive(:log_error).with("Error trying to load plugin 'plugin': StandardError, the-error")
168
-
169
- subject.load!
170
-
171
- expect(subject.loaded).to be_eql(true)
172
- end
173
- end
174
-
175
- context 'with false dependencies' do
176
- let(:dummy_object) { '' }
177
- let(:plugin_proc) do
178
- dummy = dummy_object
179
-
180
- proc do
181
- dependency do
182
- true
183
- end
184
-
185
- dependency do
186
- 1 == 2.0
187
- end
188
-
189
- execute do
190
- dummy.upcase
191
- end
192
-
193
- execute do
194
- dummy.downcase
195
- end
196
- end
197
- end
198
-
199
- it 'calls the callables' do
200
- expect(dummy_object).not_to receive(:upcase)
201
- expect(dummy_object).not_to receive(:downcase)
202
-
203
- subject.load!
204
-
205
- expect(subject.loaded).to be_eql(false)
206
- end
207
- end
208
- end
209
- end