rocketjob_mission_control 1.1.0 → 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 (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: