rocketjob_mission_control 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/rocket_job_mission_control/dirmon_entries.js.coffee +18 -0
  3. data/app/assets/stylesheets/rocket_job_mission_control/base.scss +33 -59
  4. data/app/assets/stylesheets/rocket_job_mission_control/bootstrap_and_overrides.scss +12 -0
  5. data/app/assets/stylesheets/rocket_job_mission_control/callout.scss +8 -0
  6. data/app/assets/stylesheets/rocket_job_mission_control/jobs.scss +35 -0
  7. data/app/controllers/rocket_job_mission_control/application_controller.rb +0 -2
  8. data/app/controllers/rocket_job_mission_control/dirmon_entries_controller.rb +125 -0
  9. data/app/controllers/rocket_job_mission_control/jobs/failures_controller.rb +31 -0
  10. data/app/helpers/rocket_job_mission_control/application_helper.rb +7 -0
  11. data/app/helpers/rocket_job_mission_control/jobs_helper.rb +18 -11
  12. data/app/helpers/rocket_job_mission_control/pagination_helper.rb +7 -0
  13. data/app/helpers/rocket_job_mission_control/slices_helper.rb +9 -0
  14. data/app/models/job_failures.rb +30 -0
  15. data/app/views/layouts/rocket_job_mission_control/application.html.haml +3 -1
  16. data/app/views/layouts/rocket_job_mission_control/partials/_header.html.haml +2 -2
  17. data/app/views/layouts/rocket_job_mission_control/partials/_sidebar.html.haml +4 -0
  18. data/app/views/rocket_job_mission_control/dirmon_entries/_form.html.haml +36 -0
  19. data/app/views/rocket_job_mission_control/dirmon_entries/_list.html.haml +31 -0
  20. data/app/views/rocket_job_mission_control/dirmon_entries/_properties.html.haml +8 -0
  21. data/app/views/rocket_job_mission_control/dirmon_entries/_status.html.haml +23 -0
  22. data/app/views/rocket_job_mission_control/dirmon_entries/edit.html.haml +8 -0
  23. data/app/views/rocket_job_mission_control/dirmon_entries/index.html.haml +11 -0
  24. data/app/views/rocket_job_mission_control/dirmon_entries/new.html.haml +9 -0
  25. data/app/views/rocket_job_mission_control/dirmon_entries/show.html.haml +26 -0
  26. data/app/views/rocket_job_mission_control/jobs/_list.html.haml +34 -30
  27. data/app/views/rocket_job_mission_control/jobs/failures/_pagination.html.haml +16 -0
  28. data/app/views/rocket_job_mission_control/jobs/failures/index.html.haml +32 -0
  29. data/app/views/rocket_job_mission_control/jobs/index.html.haml +10 -8
  30. data/app/views/rocket_job_mission_control/jobs/running.html.haml +1 -1
  31. data/app/views/rocket_job_mission_control/jobs/show.html.haml +39 -35
  32. data/app/views/rocket_job_mission_control/workers/_actions.html.haml +4 -4
  33. data/app/views/rocket_job_mission_control/workers/index.html.haml +50 -45
  34. data/config/locales/en.yml +23 -1
  35. data/config/routes.rb +8 -0
  36. data/lib/rocket_job_mission_control/version.rb +1 -1
  37. data/spec/controllers/dirmon_entries_controller_spec.rb +451 -0
  38. data/spec/controllers/jobs/failures_controller_spec.rb +60 -0
  39. data/spec/dummy/config/environments/test.rb +1 -1
  40. data/spec/dummy/config/mongo.yml +15 -0
  41. data/spec/dummy/log/development.log +2 -0
  42. data/spec/dummy/log/test.log +52763 -2015
  43. data/spec/helpers/jobs_helper_spec.rb +27 -0
  44. data/spec/helpers/pagination_helper_spec.rb +21 -0
  45. data/spec/helpers/slices_helper_spec.rb +33 -0
  46. data/spec/models/job_failures_spec.rb +14 -0
  47. data/spec/views/workers/index.html.haml_spec.rb +23 -0
  48. metadata +35 -4
@@ -5,6 +5,10 @@ module RocketJobMissionControl
5
5
  end
6
6
 
7
7
  RSpec.describe JobsHelper, type: :helper do
8
+ before do
9
+ helper.extend(RocketJobMissionControl::ApplicationHelper)
10
+ end
11
+
8
12
  describe '#job_state_icon' do
9
13
  JobsHelper::STATE_ICON_MAP.each do |state, expected_class|
10
14
  context "when the job state is #{state}" do
@@ -15,6 +19,29 @@ module RocketJobMissionControl
15
19
  end
16
20
  end
17
21
 
22
+ describe '#job_action_link' do
23
+ let(:action) { 'abort' }
24
+ let(:http_method) { :patch }
25
+ let(:path) { "/jobs/42/#{action}" }
26
+ let(:action_link) { helper.job_action_link(action, path, http_method) }
27
+
28
+ it 'uses the action as the label' do
29
+ expect(action_link).to match(/>abort<\/a>/)
30
+ end
31
+
32
+ it 'links to the correct url' do
33
+ expect(action_link).to match(/href="\/jobs\/42\/abort\"/)
34
+ end
35
+
36
+ it 'adds prompt for confirmation' do
37
+ expect(action_link).to match(/data-confirm="Are you sure you want to abort this job\?"/)
38
+ end
39
+
40
+ it 'uses correct http method' do
41
+ expect(action_link).to match(/data-method="patch"/)
42
+ end
43
+ end
44
+
18
45
  describe '#pretty_print_array_or_hash' do
19
46
  let(:arguments) { [42, "muad'dib"] }
20
47
  let(:helper_output) { helper.pretty_print_array_or_hash(arguments) }
@@ -0,0 +1,21 @@
1
+ require 'rails_helper'
2
+
3
+ module RocketJobMissionControl
4
+ RSpec.describe PaginationHelper, type: :helper do
5
+ describe '#page_nav_disabled_class' do
6
+
7
+ context 'when the current position equals the boundary' do
8
+ it 'returns disabled' do
9
+ expect(helper.page_nav_disabled_class(0, 0)).to eq('disabled')
10
+ end
11
+ end
12
+
13
+ context 'when the current position is NOT equal to the boundary' do
14
+ it 'returns blank' do
15
+ expect(helper.page_nav_disabled_class(4, 0)).to be_blank
16
+ end
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,33 @@
1
+ require 'rails_helper'
2
+
3
+ module RocketJobMissionControl
4
+ RSpec.describe SlicesHelper, type: :helper do
5
+ before do
6
+ helper.extend(RocketJobMissionControl::ApplicationHelper)
7
+ end
8
+
9
+ describe '#display_slice_info' do
10
+ let(:slice) { { id: 42, name: 'test' } }
11
+
12
+ context "when encrypted" do
13
+ it { expect(helper.display_slice_info(slice, true)).to eq('encrypted') }
14
+ end
15
+
16
+ context "when unencrypted" do
17
+ before do
18
+ allow(helper).to receive(:pretty_print_array_or_hash)
19
+ end
20
+
21
+ it "does not return 'encrypted'" do
22
+ expect(helper.display_slice_info(slice, false)).to_not eq('encrypted')
23
+ end
24
+
25
+ it "displays the slice info" do
26
+ helper.display_slice_info(slice, false)
27
+ expect(helper).to have_received(:pretty_print_array_or_hash).with(slice.to_a)
28
+ end
29
+ end
30
+
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,14 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe JobFailures do
4
+ describe '#job' do
5
+ before do
6
+ allow(RocketJob::Job).to receive(:find)
7
+ end
8
+
9
+ it 'looks up the job' do
10
+ described_class.new(42).job
11
+ expect(RocketJob::Job).to have_received(:find).with(42)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,23 @@
1
+ require 'rails_helper'
2
+
3
+ module RocketJobMissionControl
4
+ class FakeWorker < OpenStruct
5
+ end
6
+
7
+ RSpec.describe 'rocket_job_mission_control/workers/index.html.haml', type: :view do
8
+ before do
9
+ assign(:workers, [
10
+ FakeWorker.new(
11
+ name: 'Worker42',
12
+ heartbeat: spy(current_threads: 42),
13
+ started_at: 1.minute.ago,
14
+ ),
15
+ ])
16
+ render
17
+ end
18
+
19
+ it 'displays the worker' do
20
+ expect(rendered).to include('Worker42')
21
+ end
22
+ end
23
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocketjob_mission_control
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Cloutier
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-08-03 00:00:00.000000000 Z
12
+ date: 2015-08-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -87,14 +87,14 @@ dependencies:
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '1.0'
90
+ version: '1.1'
91
91
  type: :runtime
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '1.0'
97
+ version: '1.1'
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: mongo_ha
100
100
  requirement: !ruby/object:Gem::Requirement
@@ -164,6 +164,7 @@ files:
164
164
  - app/assets/images/rocket_job_mission_control/rocket-icon-64x64.png
165
165
  - app/assets/javascripts/rocket_job_mission_control/application.js
166
166
  - app/assets/javascripts/rocket_job_mission_control/base.js.coffee
167
+ - app/assets/javascripts/rocket_job_mission_control/dirmon_entries.js.coffee
167
168
  - app/assets/javascripts/rocket_job_mission_control/jobs.js.coffee
168
169
  - app/assets/stylesheets/rocket_job_mission_control/application.scss
169
170
  - app/assets/stylesheets/rocket_job_mission_control/base.scss
@@ -172,16 +173,31 @@ files:
172
173
  - app/assets/stylesheets/rocket_job_mission_control/jobs.scss
173
174
  - app/assets/stylesheets/rocket_job_mission_control/jquery.bootstrap-touchspin.scss
174
175
  - app/controllers/rocket_job_mission_control/application_controller.rb
176
+ - app/controllers/rocket_job_mission_control/dirmon_entries_controller.rb
177
+ - app/controllers/rocket_job_mission_control/jobs/failures_controller.rb
175
178
  - app/controllers/rocket_job_mission_control/jobs_controller.rb
176
179
  - app/controllers/rocket_job_mission_control/workers_controller.rb
177
180
  - app/helpers/rocket_job_mission_control/application_helper.rb
178
181
  - app/helpers/rocket_job_mission_control/jobs_helper.rb
182
+ - app/helpers/rocket_job_mission_control/pagination_helper.rb
183
+ - app/helpers/rocket_job_mission_control/slices_helper.rb
179
184
  - app/helpers/rocket_job_mission_control/workers_helper.rb
185
+ - app/models/job_failures.rb
180
186
  - app/views/layouts/rocket_job_mission_control/application.html.haml
181
187
  - app/views/layouts/rocket_job_mission_control/partials/_header.html.haml
182
188
  - app/views/layouts/rocket_job_mission_control/partials/_sidebar.html.haml
189
+ - app/views/rocket_job_mission_control/dirmon_entries/_form.html.haml
190
+ - app/views/rocket_job_mission_control/dirmon_entries/_list.html.haml
191
+ - app/views/rocket_job_mission_control/dirmon_entries/_properties.html.haml
192
+ - app/views/rocket_job_mission_control/dirmon_entries/_status.html.haml
193
+ - app/views/rocket_job_mission_control/dirmon_entries/edit.html.haml
194
+ - app/views/rocket_job_mission_control/dirmon_entries/index.html.haml
195
+ - app/views/rocket_job_mission_control/dirmon_entries/new.html.haml
196
+ - app/views/rocket_job_mission_control/dirmon_entries/show.html.haml
183
197
  - app/views/rocket_job_mission_control/jobs/_list.html.haml
184
198
  - app/views/rocket_job_mission_control/jobs/_status.html.haml
199
+ - app/views/rocket_job_mission_control/jobs/failures/_pagination.html.haml
200
+ - app/views/rocket_job_mission_control/jobs/failures/index.html.haml
185
201
  - app/views/rocket_job_mission_control/jobs/index.html.haml
186
202
  - app/views/rocket_job_mission_control/jobs/running.html.haml
187
203
  - app/views/rocket_job_mission_control/jobs/show.html.haml
@@ -194,6 +210,8 @@ files:
194
210
  - lib/rocketjob_mission_control.rb
195
211
  - lib/tasks/rocket_job_mission_control_tasks.rake
196
212
  - spec/controllers/application_controller_spec.rb
213
+ - spec/controllers/dirmon_entries_controller_spec.rb
214
+ - spec/controllers/jobs/failures_controller_spec.rb
197
215
  - spec/controllers/jobs_controller_spec.rb
198
216
  - spec/controllers/workers_controller_spec.rb
199
217
  - spec/dummy/README.rdoc
@@ -222,6 +240,7 @@ files:
222
240
  - spec/dummy/config/initializers/session_store.rb
223
241
  - spec/dummy/config/initializers/wrap_parameters.rb
224
242
  - spec/dummy/config/locales/en.yml
243
+ - spec/dummy/config/mongo.yml
225
244
  - spec/dummy/config/routes.rb
226
245
  - spec/dummy/config/secrets.yml
227
246
  - spec/dummy/log/development.log
@@ -231,8 +250,12 @@ files:
231
250
  - spec/dummy/public/500.html
232
251
  - spec/dummy/public/favicon.ico
233
252
  - spec/helpers/jobs_helper_spec.rb
253
+ - spec/helpers/pagination_helper_spec.rb
254
+ - spec/helpers/slices_helper_spec.rb
255
+ - spec/models/job_failures_spec.rb
234
256
  - spec/rails_helper.rb
235
257
  - spec/spec_helper.rb
258
+ - spec/views/workers/index.html.haml_spec.rb
236
259
  - vendor/assets/javascripts/jquery.bootstrap-touchspin.js
237
260
  - vendor/assets/javascripts/prism.js
238
261
  - vendor/assets/stylesheets/jquery.bootstrap-touchspin.css
@@ -263,6 +286,8 @@ specification_version: 4
263
286
  summary: Mission Control is the Web user interface to manage rocketjob jobs
264
287
  test_files:
265
288
  - spec/controllers/application_controller_spec.rb
289
+ - spec/controllers/dirmon_entries_controller_spec.rb
290
+ - spec/controllers/jobs/failures_controller_spec.rb
266
291
  - spec/controllers/jobs_controller_spec.rb
267
292
  - spec/controllers/workers_controller_spec.rb
268
293
  - spec/dummy/app/assets/javascripts/application.js
@@ -288,6 +313,7 @@ test_files:
288
313
  - spec/dummy/config/initializers/session_store.rb
289
314
  - spec/dummy/config/initializers/wrap_parameters.rb
290
315
  - spec/dummy/config/locales/en.yml
316
+ - spec/dummy/config/mongo.yml
291
317
  - spec/dummy/config/routes.rb
292
318
  - spec/dummy/config/secrets.yml
293
319
  - spec/dummy/config.ru
@@ -300,5 +326,10 @@ test_files:
300
326
  - spec/dummy/Rakefile
301
327
  - spec/dummy/README.rdoc
302
328
  - spec/helpers/jobs_helper_spec.rb
329
+ - spec/helpers/pagination_helper_spec.rb
330
+ - spec/helpers/slices_helper_spec.rb
331
+ - spec/models/job_failures_spec.rb
303
332
  - spec/rails_helper.rb
304
333
  - spec/spec_helper.rb
334
+ - spec/views/workers/index.html.haml_spec.rb
335
+ has_rdoc: