app_status 1.1.2 → 1.2.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 (28) hide show
  1. data/app/controllers/app_status/application_controller.rb +3 -1
  2. data/app/controllers/app_status/status_controller.rb +8 -2
  3. data/app/views/app_status/status/index.html.erb +3 -1
  4. data/bin/nokogiri +16 -0
  5. data/config/routes.rb +2 -2
  6. data/lib/app_status/engine.rb +0 -3
  7. data/lib/app_status/version.rb +1 -1
  8. data/spec/dummy/app/controllers/widgets_controller.rb +83 -0
  9. data/spec/dummy/app/views/layouts/application.html.erb +4 -0
  10. data/spec/dummy/app/views/widgets/_form.html.erb +17 -0
  11. data/spec/dummy/app/views/widgets/edit.html.erb +6 -0
  12. data/spec/dummy/app/views/widgets/index.html.erb +21 -0
  13. data/spec/dummy/app/views/widgets/new.html.erb +5 -0
  14. data/spec/dummy/app/views/widgets/show.html.erb +5 -0
  15. data/spec/dummy/config/routes.rb +3 -1
  16. data/spec/dummy/log/development.log +150 -0
  17. data/spec/dummy/log/test.log +1554 -0
  18. data/spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  19. data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  20. data/spec/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  21. data/spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  22. data/spec/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  23. data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  24. data/spec/features/app_status_features_spec.rb +90 -0
  25. data/spec/spec_helper.rb +1 -4
  26. metadata +47 -7
  27. data/app/views/layouts/app_status/application.html.erb +0 -14
  28. data/spec/controllers/status_controller_spec.rb +0 -28
@@ -0,0 +1,90 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec::Matchers.define :have_content_type do |expected|
4
+
5
+ def extract_content_type(actual)
6
+ actual.response_headers['Content-Type'].split(';')[0]
7
+ end
8
+
9
+ match do |actual|
10
+ extract_content_type(actual) == expected
11
+ end
12
+
13
+ failure_message_for_should do |actual|
14
+ "expected that page's content type would be '#{expected}', but was '#{extract_content_type(actual)}'"
15
+ end
16
+
17
+ end
18
+
19
+ describe "status" do
20
+
21
+ before(:each) do
22
+ AppStatus::CheckCollection.clear_checks!
23
+ AppStatus::CheckCollection.configure do |c|
24
+ c.add_check('some_service') {[:ok, 'foo']}
25
+ c.add_description('some_service', "more info")
26
+ end
27
+ end
28
+
29
+ it "renders json by default" do
30
+ visit "/status"
31
+ page.should have_content_type('application/json')
32
+ end
33
+
34
+ describe "html page" do
35
+
36
+ it "is available at status.html" do
37
+ visit '/status.html'
38
+ page.should have_content_type('text/html')
39
+ end
40
+
41
+ it "is available at /status/index.html" do
42
+ visit '/status/index.html'
43
+ page.should have_content_type('text/html')
44
+ end
45
+
46
+ it "renders in the main application's default layout" do
47
+ visit '/status.html'
48
+ page.title.should eq 'Dummy'
49
+ end
50
+
51
+ it "doesn't break route urls in main layout" do
52
+ visit '/status.html'
53
+ page.find('#widget_menu').should have_content('Widgets are at http://www.example.com/widgets.')
54
+ end
55
+
56
+ end
57
+
58
+ describe "json endpoint" do
59
+
60
+ it "is available at status.json" do
61
+ visit '/status.json'
62
+ page.should have_content_type('application/json')
63
+ end
64
+
65
+ it "is available at /status/index.json" do
66
+ visit '/status/index.json'
67
+ page.should have_content_type('application/json')
68
+ end
69
+
70
+ it "links to html status page" do
71
+ visit '/status.json'
72
+ page.should have_content_type('application/json')
73
+ data = JSON.parse(page.body)
74
+
75
+ data['more_info'].should eq 'http://www.example.com/status.html'
76
+ end
77
+
78
+ it "contains status information" do
79
+ visit '/status.json'
80
+ page.should have_content_type('application/json')
81
+ data = JSON.parse(page.body)
82
+
83
+ data['status'].should eq 'ok'
84
+ data['status_code'].should eq 0
85
+ data['checks']['some_service']['status'].should eq 'ok'
86
+ data['checks']['some_service']['details'].should eq 'foo'
87
+ end
88
+
89
+ end
90
+ end
data/spec/spec_helper.rb CHANGED
@@ -4,15 +4,12 @@ require File.expand_path("../dummy/config/environment.rb", __FILE__)
4
4
  require 'rspec/rails'
5
5
  require 'rspec/autorun'
6
6
  require 'timecop'
7
+ require 'capybara/rspec'
7
8
 
8
9
  Rails.backtrace_cleaner.remove_silencers!
9
10
 
10
- # Load support files
11
- #Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
12
-
13
11
  RSpec.configure do |config|
14
12
  config.mock_with :rspec
15
- #config.use_transactional_fixtures = true
16
13
  config.infer_base_class_for_anonymous_controllers = false
17
14
  config.order = "random"
18
15
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: app_status
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-09 00:00:00.000000000 Z
12
+ date: 2013-10-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -91,6 +91,22 @@ dependencies:
91
91
  - - ! '>='
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: capybara
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
94
110
  description: AppStatus provides a URL which is easily consumable by Nagios or other
95
111
  monitoring tools.
96
112
  email:
@@ -107,13 +123,13 @@ files:
107
123
  - app/models/app_status/check_collection.rb
108
124
  - app/models/app_status/check_item.rb
109
125
  - app/views/app_status/status/index.html.erb
110
- - app/views/layouts/app_status/application.html.erb
111
126
  - bin/autospec
112
127
  - bin/erubis
113
128
  - bin/haml
114
129
  - bin/htmldiff
115
130
  - bin/kramdown
116
131
  - bin/ldiff
132
+ - bin/nokogiri
117
133
  - bin/rackup
118
134
  - bin/rails
119
135
  - bin/rake
@@ -132,12 +148,17 @@ files:
132
148
  - MIT-LICENSE
133
149
  - Rakefile
134
150
  - README.md
135
- - spec/controllers/status_controller_spec.rb
136
151
  - spec/dummy/app/assets/javascripts/application.js
137
152
  - spec/dummy/app/assets/stylesheets/application.css
138
153
  - spec/dummy/app/controllers/application_controller.rb
154
+ - spec/dummy/app/controllers/widgets_controller.rb
139
155
  - spec/dummy/app/helpers/application_helper.rb
140
156
  - spec/dummy/app/views/layouts/application.html.erb
157
+ - spec/dummy/app/views/widgets/_form.html.erb
158
+ - spec/dummy/app/views/widgets/edit.html.erb
159
+ - spec/dummy/app/views/widgets/index.html.erb
160
+ - spec/dummy/app/views/widgets/new.html.erb
161
+ - spec/dummy/app/views/widgets/show.html.erb
141
162
  - spec/dummy/config/application.rb
142
163
  - spec/dummy/config/boot.rb
143
164
  - spec/dummy/config/database.yml
@@ -167,13 +188,20 @@ files:
167
188
  - spec/dummy/tmp/cache/assets/CA5/160/sprockets%2Fc4b6dd696758a9c186897a8c25615778
168
189
  - spec/dummy/tmp/cache/assets/CB2/070/sprockets%2Fe1b30e44248fc0395505c899c0f2357e
169
190
  - spec/dummy/tmp/cache/assets/CB2/5B0/sprockets%2Fc8e423e85d0a1cb22332859990909a3f
191
+ - spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
170
192
  - spec/dummy/tmp/cache/assets/CF2/9A0/sprockets%2Fb3eee5a6a87662f428f47c908157f606
171
193
  - spec/dummy/tmp/cache/assets/D15/DA0/sprockets%2Fc7e74644f623ec92a443b53b8c1d19c8
194
+ - spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
172
195
  - spec/dummy/tmp/cache/assets/D3F/E00/sprockets%2Fa7629a6ce27d07753dbb05bd48098ce0
196
+ - spec/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655
173
197
  - spec/dummy/tmp/cache/assets/D51/F30/sprockets%2Fbe466f3302fef7895aad76d05d93963d
198
+ - spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
174
199
  - spec/dummy/tmp/cache/assets/DB8/430/sprockets%2Ff731c6599577d8f741f3afd2d8ed2efb
200
+ - spec/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994
175
201
  - spec/dummy/tmp/cache/assets/DDD/460/sprockets%2Fe5b8947c2a5caf5460fecdfd48c818d5
202
+ - spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
176
203
  - spec/dummy/tmp/cache/assets/E07/FD0/sprockets%2Fb3d7aafd7ce063e022cd29e7ccb898f9
204
+ - spec/features/app_status_features_spec.rb
177
205
  - spec/models/check_collection_spec.rb
178
206
  - spec/spec_helper.rb
179
207
  homepage: http://github.com/alexdean/app_status
@@ -190,7 +218,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
190
218
  version: '0'
191
219
  segments:
192
220
  - 0
193
- hash: 1438929825745420102
221
+ hash: -3960571408936906561
194
222
  required_rubygems_version: !ruby/object:Gem::Requirement
195
223
  none: false
196
224
  requirements:
@@ -199,7 +227,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
227
  version: '0'
200
228
  segments:
201
229
  - 0
202
- hash: 1438929825745420102
230
+ hash: -3960571408936906561
203
231
  requirements: []
204
232
  rubyforge_project:
205
233
  rubygems_version: 1.8.24
@@ -207,12 +235,17 @@ signing_key:
207
235
  specification_version: 3
208
236
  summary: AppStatus is a Rails engine for exposing app data to Nagios.
209
237
  test_files:
210
- - spec/controllers/status_controller_spec.rb
211
238
  - spec/dummy/app/assets/javascripts/application.js
212
239
  - spec/dummy/app/assets/stylesheets/application.css
213
240
  - spec/dummy/app/controllers/application_controller.rb
241
+ - spec/dummy/app/controllers/widgets_controller.rb
214
242
  - spec/dummy/app/helpers/application_helper.rb
215
243
  - spec/dummy/app/views/layouts/application.html.erb
244
+ - spec/dummy/app/views/widgets/_form.html.erb
245
+ - spec/dummy/app/views/widgets/edit.html.erb
246
+ - spec/dummy/app/views/widgets/index.html.erb
247
+ - spec/dummy/app/views/widgets/new.html.erb
248
+ - spec/dummy/app/views/widgets/show.html.erb
216
249
  - spec/dummy/config/application.rb
217
250
  - spec/dummy/config/boot.rb
218
251
  - spec/dummy/config/database.yml
@@ -242,12 +275,19 @@ test_files:
242
275
  - spec/dummy/tmp/cache/assets/CA5/160/sprockets%2Fc4b6dd696758a9c186897a8c25615778
243
276
  - spec/dummy/tmp/cache/assets/CB2/070/sprockets%2Fe1b30e44248fc0395505c899c0f2357e
244
277
  - spec/dummy/tmp/cache/assets/CB2/5B0/sprockets%2Fc8e423e85d0a1cb22332859990909a3f
278
+ - spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
245
279
  - spec/dummy/tmp/cache/assets/CF2/9A0/sprockets%2Fb3eee5a6a87662f428f47c908157f606
246
280
  - spec/dummy/tmp/cache/assets/D15/DA0/sprockets%2Fc7e74644f623ec92a443b53b8c1d19c8
281
+ - spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
247
282
  - spec/dummy/tmp/cache/assets/D3F/E00/sprockets%2Fa7629a6ce27d07753dbb05bd48098ce0
283
+ - spec/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655
248
284
  - spec/dummy/tmp/cache/assets/D51/F30/sprockets%2Fbe466f3302fef7895aad76d05d93963d
285
+ - spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
249
286
  - spec/dummy/tmp/cache/assets/DB8/430/sprockets%2Ff731c6599577d8f741f3afd2d8ed2efb
287
+ - spec/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994
250
288
  - spec/dummy/tmp/cache/assets/DDD/460/sprockets%2Fe5b8947c2a5caf5460fecdfd48c818d5
289
+ - spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
251
290
  - spec/dummy/tmp/cache/assets/E07/FD0/sprockets%2Fb3d7aafd7ce063e022cd29e7ccb898f9
291
+ - spec/features/app_status_features_spec.rb
252
292
  - spec/models/check_collection_spec.rb
253
293
  - spec/spec_helper.rb
@@ -1,14 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>App Status</title>
5
- <%= stylesheet_link_tag "app_status/application", :media => "all" %>
6
- <%= javascript_include_tag "app_status/application" %>
7
- <%= csrf_meta_tags %>
8
- </head>
9
- <body>
10
-
11
- <%= yield %>
12
-
13
- </body>
14
- </html>
@@ -1,28 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe AppStatus::StatusController do
4
-
5
- describe "GET index" do
6
- before(:each) do
7
- AppStatus::CheckCollection.clear_checks!
8
- AppStatus::CheckCollection.add_check('some_service') {[:ok, 'foo']}
9
- end
10
-
11
- it "should render json" do
12
- get :index, format: 'json', use_route: :app_status
13
- response.should be_success
14
-
15
- data = JSON.parse(response.body)
16
- data['status'].should eq 'ok'
17
- data['status_code'].should eq 0
18
- data['checks']['some_service']['status'].should eq 'ok'
19
- data['checks']['some_service']['details'].should eq 'foo'
20
- end
21
-
22
- it "should render html" do
23
- get :index, format: 'html', use_route: :app_status
24
- response.should be_success
25
- # FIXME: response.body == "". why?
26
- end
27
- end
28
- end