rocketjob_mission_control 3.0.3 → 3.1.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 (61) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +4 -0
  3. data/app/assets/fonts/webfonts/fa-brands-400.eot +0 -0
  4. data/app/assets/fonts/webfonts/fa-brands-400.woff +0 -0
  5. data/app/assets/fonts/webfonts/fa-brands-400.woff2 +0 -0
  6. data/app/assets/fonts/webfonts/fa-regular-400.eot +0 -0
  7. data/app/assets/fonts/webfonts/fa-regular-400.woff +0 -0
  8. data/app/assets/fonts/webfonts/fa-regular-400.woff2 +0 -0
  9. data/app/assets/fonts/webfonts/fa-solid-900.eot +0 -0
  10. data/app/assets/fonts/webfonts/fa-solid-900.woff +0 -0
  11. data/app/assets/fonts/webfonts/fa-solid-900.woff2 +0 -0
  12. data/app/assets/images/rocket_job_mission_control/android-chrome-192x192.png +0 -0
  13. data/app/assets/images/rocket_job_mission_control/android-chrome-512x512.png +0 -0
  14. data/app/assets/images/rocket_job_mission_control/apple-touch-icon.png +0 -0
  15. data/app/assets/images/rocket_job_mission_control/favicon-16x16.png +0 -0
  16. data/app/assets/images/rocket_job_mission_control/favicon-32x32.png +0 -0
  17. data/app/assets/images/rocket_job_mission_control/favicon.ico +0 -0
  18. data/app/assets/images/rocket_job_mission_control/favicon.png +0 -0
  19. data/app/assets/images/rocket_job_mission_control/mstile-150x150.png +0 -0
  20. data/app/assets/images/rocket_job_mission_control/safari-pinned-tab.svg +188 -0
  21. data/app/assets/javascripts/rocket_job_mission_control/datatable.js +2 -1
  22. data/app/assets/stylesheets/rocket_job_mission_control/application.scss +5 -4
  23. data/app/assets/stylesheets/rocket_job_mission_control/base.scss +39 -65
  24. data/app/assets/stylesheets/rocket_job_mission_control/callout.scss +14 -2
  25. data/app/datatables/rocket_job_mission_control/active_workers_datatable.rb +1 -1
  26. data/app/datatables/rocket_job_mission_control/dirmon_entries_datatable.rb +1 -1
  27. data/app/datatables/rocket_job_mission_control/jobs_datatable.rb +21 -16
  28. data/app/datatables/rocket_job_mission_control/servers_datatable.rb +1 -1
  29. data/app/helpers/rocket_job_mission_control/application_helper.rb +18 -16
  30. data/app/helpers/rocket_job_mission_control/jobs_helper.rb +11 -6
  31. data/app/views/layouts/rocket_job_mission_control/application.html.erb +30 -28
  32. data/app/views/layouts/rocket_job_mission_control/partials/_flash.html.erb +5 -4
  33. data/app/views/layouts/rocket_job_mission_control/partials/_header.html.erb +23 -19
  34. data/app/views/layouts/rocket_job_mission_control/partials/_sidebar.html.erb +5 -4
  35. data/app/views/rocket_job_mission_control/active_workers/index.html.erb +13 -8
  36. data/app/views/rocket_job_mission_control/dirmon_entries/_form.html.erb +31 -21
  37. data/app/views/rocket_job_mission_control/dirmon_entries/_sidebar.html.erb +12 -9
  38. data/app/views/rocket_job_mission_control/dirmon_entries/_status.html.erb +5 -2
  39. data/app/views/rocket_job_mission_control/dirmon_entries/edit.html.erb +4 -3
  40. data/app/views/rocket_job_mission_control/dirmon_entries/index.html.erb +16 -14
  41. data/app/views/rocket_job_mission_control/dirmon_entries/new.html.erb +5 -4
  42. data/app/views/rocket_job_mission_control/dirmon_entries/show.html.erb +19 -14
  43. data/app/views/rocket_job_mission_control/jobs/_pagination.html.erb +9 -5
  44. data/app/views/rocket_job_mission_control/jobs/_sidebar.html.erb +9 -8
  45. data/app/views/rocket_job_mission_control/jobs/_status.html.erb +18 -10
  46. data/app/views/rocket_job_mission_control/jobs/edit.html.erb +22 -15
  47. data/app/views/rocket_job_mission_control/jobs/exception.html.erb +14 -10
  48. data/app/views/rocket_job_mission_control/jobs/exceptions.html.erb +27 -25
  49. data/app/views/rocket_job_mission_control/jobs/index.html.erb +16 -13
  50. data/app/views/rocket_job_mission_control/jobs/show.html.erb +25 -20
  51. data/app/views/rocket_job_mission_control/servers/_sidebar.html.erb +8 -6
  52. data/app/views/rocket_job_mission_control/servers/index.html.erb +18 -14
  53. data/config/initializers/assets.rb +13 -0
  54. data/lib/rocket_job_mission_control/version.rb +1 -1
  55. data/test/controllers/rocket_job_mission_control/dirmon_entries_controller_test.rb +4 -6
  56. data/test/controllers/rocket_job_mission_control/jobs_controller_test.rb +18 -15
  57. data/test/helpers/rocket_job_mission_control/jobs_helper_test.rb +12 -6
  58. data/test/helpers/rocket_job_mission_control/servers_helper_test.rb +3 -4
  59. data/vendor/assets/stylesheets/fontawesome-all.min.css +5 -0
  60. data/vendor/assets/stylesheets/{selectize.default.css → selectize.bootstrap3.css} +134 -113
  61. metadata +39 -13
@@ -1,17 +1,21 @@
1
- <div class="row">
2
- <div class="col-md-8">
3
- <div class="job-status">
4
- <div class="failures">
5
- <div class="lead"><%= link_to(@job.class.name, job_path(@job)) %>: <%= @failure_exception.class_name %></div>
6
- <div class="pagination-buttons pull-right">
1
+ <div class='row'>
2
+ <div class='col-md-8'>
3
+ <div class='job-status'>
4
+ <div class='failures'>
5
+ <div class='lead'><%= link_to(@job.class.name, job_path(@job)) %>: <%= @failure_exception.class_name %></div>
6
+
7
+ <div class='pagination-buttons pull-right'>
7
8
  <%= render partial: 'pagination', locals: {error_type: @failure_exception.class_name, pagination: @pagination} %>
8
9
  </div>
9
- <div class="clearfix"></div>
10
- <div class="message">
10
+
11
+ <div class='clearfix'></div>
12
+
13
+ <div class='message'>
11
14
  <pre><code><%= @failure_exception.message %></code></pre>
12
15
  </div>
13
- <div class="error">
14
- <pre class="small"><%= @failure_exception.backtrace.join("\n") %></pre>
16
+
17
+ <div class='error'>
18
+ <pre class='small'><%= @failure_exception.backtrace.join("\n") %></pre>
15
19
  </div>
16
20
  </div>
17
21
  </div>
@@ -1,39 +1,41 @@
1
- <div class="job-list">
2
- <div class="list">
3
- <div class="row">
4
- <div class="col-sm-10">
1
+ <div class='job-list'>
2
+ <div class='list'>
3
+ <div class='row'>
4
+ <div class='col-sm-10'>
5
5
  <h2>Exceptions for <%= @job.class.name %></h2>
6
6
  <%= link_to(@job.class.name, job_path(@job)) %>
7
7
  <%= h(@job.description) %>
8
8
  </div>
9
- <div class="col-sm-2">
10
- <div class="btn btn-default pull-right dt-reload" data-behavior="reload">
11
- <i class="fa fa-refresh"></i>
9
+
10
+ <div class='col-sm-2'>
11
+ <div class='btn btn-default pull-right dt-reload' data-behavior='reload'>
12
+ <i class='fas fa-sync'></i>
12
13
  </div>
13
14
  </div>
14
15
  </div>
16
+
15
17
  <table class='table datatable jobs-datatable' data-source='<%= jobs_url(format: 'json') %>' style='width: 100%'>
16
18
  <thead>
17
- <tr>
18
- <th>Count</th>
19
- <th>Exception Class</th>
20
- <th>Exception Messages</th>
21
- </tr>
22
- </thead>
23
- <tbody>
24
- <% @exceptions.each do |exception| %>
25
19
  <tr>
26
- <th><%= exception.count %></th>
27
- <th>
28
- <%= link_to(exception.class_name, exception_job_path(@job, error_type: exception.class_name), class: "card callout") %>
29
- </th>
30
- <th>
31
- <% exception.messages.each do |message| %>
32
- <div><%= message %></div>
33
- <% end %>
34
- </th>
20
+ <th>Count</th>
21
+ <th>Exception Class</th>
22
+ <th>Exception Messages</th>
35
23
  </tr>
36
- <% end %>
24
+ </thead>
25
+
26
+ <tbody>
27
+ <% @exceptions.each do |exception| %>
28
+ <tr>
29
+ <th><%= exception.count %></th>
30
+ <th><%= link_to(exception.class_name, exception_job_path(@job, error_type: exception.class_name), class: "card callout") %></th>
31
+
32
+ <th>
33
+ <% exception.messages.each do |message| %>
34
+ <div><%= message %></div>
35
+ <% end %>
36
+ </th>
37
+ </tr>
38
+ <% end %>
37
39
  </tbody>
38
40
  </table>
39
41
  </div>
@@ -1,23 +1,26 @@
1
- <div class="job-list">
2
- <div class="list">
3
- <div class="row">
4
- <div class="col-sm-10">
1
+ <div class='job-list'>
2
+ <div class='list'>
3
+ <div class='row'>
4
+ <div class='col-sm-10'>
5
5
  <h2><%= @description %> Jobs</h2>
6
6
  </div>
7
- <div class="col-sm-2">
8
- <div class="btn btn-default pull-right dt-reload" data-behavior="reload">
9
- <i class="fa fa-refresh"></i>
7
+
8
+ <div class='col-sm-2'>
9
+ <div class='btn btn-default pull-right dt-reload' data-behavior='reload'>
10
+ <i class='fas fa-sync'></i>
10
11
  </div>
11
12
  </div>
12
13
  </div>
14
+
13
15
  <table class='table datatable jobs-datatable' data-source='<%= @data_table_url %>' style='width: 100%'>
14
16
  <thead>
15
- <tr>
16
- <% @columns.each do |column| %>
17
- <th><%= column[:display] %></th>
18
- <% end %>
19
- </tr>
17
+ <tr>
18
+ <% @columns.each do |column| %>
19
+ <th><%= column[:display] %></th>
20
+ <% end %>
21
+ </tr>
20
22
  </thead>
23
+
21
24
  <tbody></tbody>
22
25
  </table>
23
26
  </div>
@@ -26,7 +29,7 @@
26
29
  <script>
27
30
  jQuery(function () {
28
31
  new RjmcDatatable(
29
- $(".jobs-datatable"),
32
+ $('.jobs-datatable'),
30
33
  <%= @table_layout.to_json.html_safe %>
31
34
  );
32
35
  });
@@ -1,34 +1,36 @@
1
- <div class="row">
2
- <div class="col-md-14 col-md-offset-1 job-status">
3
- <div id="job">
4
- <div class="lead"><%= @job.class.name %></div>
5
- <div class="job-state inline-block">
6
- <div class="left">State</div>
7
- <div class="<%= @job.state %> right"><%= @job.state %></div>
1
+ <div class='row'>
2
+ <div class='col-md-12 job-status'>
3
+ <div id='job'>
4
+ <div class='lead'><%= @job.class.name %></div>
5
+
6
+ <div class='job-state inline-block'>
7
+ <div class='left'>State</div>
8
+ <div class="<%= job_state(@job) %> right"><%= job_state(@job) %></div>
8
9
  </div>
9
10
 
10
11
  <% if sub_state = @job['sub_state'] %>
11
- <div class="job-state inline-block">
12
- <div class="left">Batch</div>
13
- <div class="running right"><%= @job.sub_state %></div>
12
+ <div class='job-state inline-block'>
13
+ <div class='left'>Batch</div>
14
+ <div class='running right'><%= @job.sub_state %></div>
14
15
  </div>
15
16
  <% end %>
16
17
 
17
- <div class="btn-toolbar job-actions pull-right">
18
+ <div class='btn-toolbar job-actions pull-right'>
18
19
  <% if @job.respond_to?(:input) && @job.input.failed.count > 0 %>
19
- <div class="btn-group">
20
+ <div class='btn-group'>
20
21
  <%= link_to('Show Exceptions', exceptions_job_path(@job), class: 'btn btn-default') %>
21
22
  </div>
22
23
  <% end %>
23
24
 
24
25
  <% if @job.scheduled? %>
25
- <div class="btn-group">
26
+ <div class='btn-group'>
26
27
  <%= job_action_link('Run', rocket_job_mission_control.run_now_job_path(@job), :patch) %>
27
28
  </div>
28
29
  <% end %>
29
30
 
30
- <div class="btn-group">
31
+ <div class='btn-group'>
31
32
  <% valid_events = @job.aasm.events.collect { |e| e.name } %>
33
+
32
34
  <% if valid_events.include?(:pause) %>
33
35
  <%= job_action_link('Pause', rocket_job_mission_control.pause_job_path(@job), :patch) %>
34
36
  <% end %>
@@ -42,7 +44,7 @@
42
44
  <% end %>
43
45
  </div>
44
46
 
45
- <div class="btn-group">
47
+ <div class='btn-group'>
46
48
  <% if valid_events.include?(:fail) %>
47
49
  <%= job_action_link('Fail', rocket_job_mission_control.fail_job_path(@job), :patch) %>
48
50
  <% end %>
@@ -55,14 +57,17 @@
55
57
  </div>
56
58
 
57
59
  <% unless @job.completed? || @job.aborted? %>
58
- <div class="btn-group">
59
- <%= link_to "Edit", edit_job_path(@job), class: "btn btn-default" %>
60
+ <div class='btn-group'>
61
+ <%= link_to 'Edit', edit_job_path(@job), class: 'btn btn-default' %>
60
62
  </div>
61
63
  <% end %>
62
64
  </div>
63
- <div class="col-md-12">
64
- <%= render partial: 'status', locals: {job: @job} %>
65
- </div>
66
65
  </div>
67
66
  </div>
68
67
  </div>
68
+
69
+ <div class='row'>
70
+ <div class='col-md-12'>
71
+ <%= render partial: 'status', locals: { job: @job } %>
72
+ </div>
73
+ </div>
@@ -1,13 +1,14 @@
1
- <ul class="nav hidden-xs" id="lg-menu">
1
+ <ul class='nav hidden-xs' id='lg-menu'>
2
2
  <li>
3
3
  <%= link_to(servers_path) do %>
4
- <i class="fa fa-list"></i>All
4
+ <i class='fas fa-list'></i> All
5
5
  <% end %>
6
6
  </li>
7
+
7
8
  <% @states.each do |state| %>
8
9
  <li class="#{state}">
9
10
  <%= link_to("#{state}_servers".to_sym) do %>
10
- <i class="fa <%= state_icon(state) %>"></i> <%= state.capitalize%> (<%= server_counts_by_state(state)%>)
11
+ <i class="fas <%= state_icon(state) %>"></i> <%= state.capitalize%> (<%= server_counts_by_state(state)%>)
11
12
  <% end %>
12
13
  </li>
13
14
  <% end %>
@@ -15,16 +16,17 @@
15
16
 
16
17
  <!-- tiny only nav -->
17
18
 
18
- <ul class="nav visible-xs" id="xs-menu">
19
+ <ul class='nav visible-xs' id='xs-menu'>
19
20
  <li>
20
21
  <%= link_to(servers_path) do %>
21
- <i class="fa fa-list"></i>
22
+ <i class='fa fa-list'></i>
22
23
  <% end %>
23
24
  </li>
25
+
24
26
  <% @states.each do |state| %>
25
27
  <li class="#{state}">
26
28
  <%= link_to("#{state}_servers".to_sym) do %>
27
- <i class="fa <%= state_icon(state) %>"></i>
29
+ <i class="fas <%= state_icon(state) %>"></i>
28
30
  <% end %>
29
31
  </li>
30
32
  <% end %>
@@ -5,6 +5,7 @@
5
5
  <div class='col-md-6'>
6
6
  <h2><%= @description %> Servers</h2>
7
7
  </div>
8
+
8
9
  <div class='col-md-6'>
9
10
  <div class='col-sm-10'>
10
11
  <div class='server-collection-actions'>
@@ -12,34 +13,37 @@
12
13
  <div class='btn-group'>
13
14
  <% Array(@actions).each do |action| %>
14
15
  <%= link_to(
15
- "#{action.to_s.humanize.capitalize}",
16
- rocket_job_mission_control.update_all_servers_path(server_action: action),
17
- method: :patch,
18
- data: {confirm: t(:confirm, scope: [:server, :update_all], action: action.to_s.singularize.humanize.downcase)},
19
- class: 'btn btn-default')
20
- %>
16
+ "#{action.to_s.humanize.capitalize}",
17
+ rocket_job_mission_control.update_all_servers_path(server_action: action),
18
+ method: :patch,
19
+ data: { confirm: t(:confirm, scope: [:server, :update_all], action: action.to_s.singularize.humanize.downcase) },
20
+ class: 'btn btn-default'
21
+ )%>
21
22
  <% end %>
22
23
  </div>
23
24
  </ol>
24
25
  </div>
25
26
  </div>
27
+
26
28
  <div class='col-sm-2 pull-right'>
27
29
  <div class='btn btn-default pull-right dt-reload' data-behavior='reload'>
28
- <i class='fa fa-refresh'></i>
30
+ <i class='fas fa-sync'></i>
29
31
  </div>
30
32
  </div>
31
33
  </div>
32
34
  </div>
35
+
33
36
  <table class='table datatable servers-datatable' data-source='<%= @data_table_url %>' style='width: 100%'>
34
37
  <thead>
35
- <tr>
36
- <th>Hostname : PID</th>
37
- <th>Workers (Current/Max)</th>
38
- <th>Started</th>
39
- <th>Heartbeat</th>
40
- <th>Actions</th>
41
- </tr>
38
+ <tr>
39
+ <th>Hostname : PID</th>
40
+ <th>Workers (Current/Max)</th>
41
+ <th>Started</th>
42
+ <th>Heartbeat</th>
43
+ <th>Actions</th>
44
+ </tr>
42
45
  </thead>
46
+
43
47
  <tbody></tbody>
44
48
  </table>
45
49
  </div>
@@ -0,0 +1,13 @@
1
+ Rails.application.config.assets.precompile << Proc.new { |path|
2
+ if path =~ /\.(eot|svg|ttf|woff)\z/
3
+ true
4
+ end
5
+ }
6
+
7
+ Rails.application.config.assets.precompile += %w(
8
+ rocket_job_mission_control/favicon.png
9
+ rocket_job_mission_control/safari-pinned-tab.svg
10
+ rocket_job_mission_control/favicon-16x16.png
11
+ rocket_job_mission_control/favicon-32x32.png
12
+ rocket_job_mission_control/apple-touch-icon.png
13
+ )
@@ -1,3 +1,3 @@
1
1
  module RocketJobMissionControl
2
- VERSION = '3.0.3'
2
+ VERSION = '3.1.0'
3
3
  end
@@ -3,7 +3,6 @@ require_relative '../../compare_hashes'
3
3
 
4
4
  module RocketJobMissionControl
5
5
  class DirmonEntriesControllerTest < ActionController::TestCase
6
-
7
6
  describe DirmonEntriesController do
8
7
  before do
9
8
  RocketJob::DirmonEntry.delete_all
@@ -396,25 +395,25 @@ module RocketJobMissionControl
396
395
  json = JSON.parse(response.body)
397
396
  expected_data = {
398
397
  pending: {
399
- "0" => " <a href=\"/dirmon_entries/#{RocketJob::DirmonEntry.pending.first.id}\">\n <i class=\"fa fa-inbox pending\" style=\"font-size: 75%\" title=\"pending\"></i>\n Test\n </a>\n",
398
+ "0" => " <a href=\"/dirmon_entries/#{RocketJob::DirmonEntry.pending.first.id}\">\n <i class=\"fas fa-inbox pending\" style=\"font-size: 75%\" title=\"pending\"></i>\n Test\n </a>\n",
400
399
  "1" => "RocketJob::Jobs::SimpleJob",
401
400
  "2" => "the_path",
402
401
  "DT_RowClass" => "card callout callout-pending"
403
402
  },
404
403
  enabled: {
405
- "0" => " <a href=\"/dirmon_entries/#{RocketJob::DirmonEntry.enabled.first.id}\">\n <i class=\"fa fa-check enabled\" style=\"font-size: 75%\" title=\"enabled\"></i>\n Test\n </a>\n",
404
+ "0" => " <a href=\"/dirmon_entries/#{RocketJob::DirmonEntry.enabled.first.id}\">\n <i class=\"fas fa-check enabled\" style=\"font-size: 75%\" title=\"enabled\"></i>\n Test\n </a>\n",
406
405
  "1" => "RocketJob::Jobs::SimpleJob",
407
406
  "2" => "the_path",
408
407
  "DT_RowClass" => "card callout callout-enabled"
409
408
  },
410
409
  failed: {
411
- "0" => " <a href=\"/dirmon_entries/#{RocketJob::DirmonEntry.failed.first.id}\">\n <i class=\"fa fa-exclamation-triangle failed\" style=\"font-size: 75%\" title=\"failed\"></i>\n Test\n </a>\n",
410
+ "0" => " <a href=\"/dirmon_entries/#{RocketJob::DirmonEntry.failed.first.id}\">\n <i class=\"fas fa-exclamation-triangle failed\" style=\"font-size: 75%\" title=\"failed\"></i>\n Test\n </a>\n",
412
411
  "1" => "RocketJob::Jobs::SimpleJob",
413
412
  "2" => "the_path",
414
413
  "DT_RowClass" => "card callout callout-failed"
415
414
  },
416
415
  disabled: {
417
- "0" => " <a href=\"/dirmon_entries/#{RocketJob::DirmonEntry.disabled.first.id}\">\n <i class=\"fa fa-stop disabled\" style=\"font-size: 75%\" title=\"disabled\"></i>\n Test\n </a>\n",
416
+ "0" => " <a href=\"/dirmon_entries/#{RocketJob::DirmonEntry.disabled.first.id}\">\n <i class=\"fas fa-stop disabled\" style=\"font-size: 75%\" title=\"disabled\"></i>\n Test\n </a>\n",
418
417
  "1" => "RocketJob::Jobs::SimpleJob",
419
418
  "2" => "the_path",
420
419
  "DT_RowClass" => "card callout callout-disabled"
@@ -435,7 +434,6 @@ module RocketJobMissionControl
435
434
  end
436
435
  end
437
436
  end
438
-
439
437
  end
440
438
  end
441
439
  end
@@ -26,30 +26,33 @@ module RocketJobMissionControl
26
26
  end
27
27
 
28
28
  let :failed_job do
29
- job = KaboomBatchJob.new(slice_size: 1)
30
- job.upload do |stream|
31
- stream << 'first record'
32
- stream << 'second record'
33
- stream << 'third record'
34
- end
35
- job.save!
29
+ if defined?(RocketJobPro)
30
+ job = KaboomBatchJob.new(slice_size: 1)
31
+ job.upload do |stream|
32
+ stream << 'first record'
33
+ stream << 'second record'
34
+ stream << 'third record'
35
+ end
36
+ job.save!
36
37
 
37
- # Run all 3 slices now to get exceptions for each.
38
- 3.times do
39
- begin
40
- job.perform_now
41
- rescue ArgumentError, RuntimeError
38
+ # Run all 3 slices now to get exceptions for each.
39
+ 3.times do
40
+ begin
41
+ job.perform_now
42
+ rescue ArgumentError, RuntimeError
43
+ end
42
44
  end
45
+ job
46
+ else
47
+ RocketJob::Job::SimpleJob.new.fail!('Oh no', 'bad_worker')
43
48
  end
44
-
45
- job
46
49
  end
47
50
 
48
51
  job_states = RocketJob::Job.aasm.states.collect(&:name)
49
52
 
50
53
  let :one_job_for_every_state do
51
54
  job_states.collect do |state|
52
- RocketJob::Jobs::SimpleJob.create!(state: state)
55
+ RocketJob::Jobs::SimpleJob.create!(state: state, worker_name: 'worker')
53
56
  end
54
57
  end
55
58
 
@@ -2,8 +2,8 @@ require_relative '../../test_helper'
2
2
 
3
3
  module RocketJobMissionControl
4
4
  JobsHelper.include(RocketJobMissionControl::ApplicationHelper)
5
- class JobsHelperTest < ActionView::TestCase
6
5
 
6
+ class JobsHelperTest < ActionView::TestCase
7
7
  describe JobsHelper do
8
8
  describe '#jobs_icon' do
9
9
  let :job do
@@ -11,29 +11,35 @@ module RocketJobMissionControl
11
11
  end
12
12
 
13
13
  it 'shows queued' do
14
- assert_equal 'fa-inbox queued', job_icon(job)
14
+ assert_equal 'fas fa-inbox queued', job_icon(job)
15
15
  end
16
16
 
17
17
  it 'shows running' do
18
18
  job.start
19
- assert_equal 'fa-play running', job_icon(job)
19
+ job.worker_name = 'test_worker'
20
+ assert_equal 'fas fa-play running', job_icon(job)
21
+ end
22
+
23
+ it 'shows sleeping' do
24
+ job.start
25
+ assert_equal 'fas fa-hourglass sleeping', job_icon(job)
20
26
  end
21
27
 
22
28
  it 'shows failed' do
23
29
  job.start
24
30
  job.fail
25
- assert_equal 'fa-exclamation-triangle failed', job_icon(job)
31
+ assert_equal 'fas fa-exclamation-triangle failed', job_icon(job)
26
32
  end
27
33
 
28
34
  it 'shows aborted' do
29
35
  job.start
30
36
  job.abort
31
- assert_equal 'fa-stop aborted', job_icon(job)
37
+ assert_equal 'fas fa-stop aborted', job_icon(job)
32
38
  end
33
39
 
34
40
  it 'handles scheduled special case' do
35
41
  job.run_at = 1.day.from_now
36
- assert_equal 'fa-clock-o scheduled', job_icon(job)
42
+ assert_equal 'fas fa-clock scheduled', job_icon(job)
37
43
  end
38
44
  end
39
45