mumuki-laboratory 9.15.0 → 9.16.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67dd086ce64c96505cea38bf9fdf857f304acd8322d91e4c139e0a847e89ce46
4
- data.tar.gz: 48b771a27f10a159b4b10e38e88cee08f4f032969fbe7a533d188dd4f50cc0b5
3
+ metadata.gz: '0973e0c9ab8333b9b2f4207d9cc40e3c88199c67fcee8f35415b802d0494a85a'
4
+ data.tar.gz: 7a7c28856ecb1751c25a053fe0db0eaf0607a8c1dbaa22c70071eeb26617d2ba
5
5
  SHA512:
6
- metadata.gz: a28dd46787bfb3b9fb50ab7ae7b6d1421e8abb5ec9b0f4f9c20bc4af62da0a5343c6a0973ebad6073af95f66178c49d0f4cccac36f11e1ce6245a23e4527143c
7
- data.tar.gz: 3ba41f5eee2cdd908ecedbe5694de3738715f99a2c3e6c6e17d0049d2224f74be08fbbcf72b4910a4e4a7c440e05e2b87130466055919ba1b0b704d15ed29688
6
+ metadata.gz: 9db401ba5aa815447c273ab82597ee16c98cd0d13ca5f68720f3190114fa69f40f9195ac479d5f4fc234ef3cdfcc7fe7c2e11c8b6d2cd59a9be9194b596d2096
7
+ data.tar.gz: b06e42055b04fa8116ce5053e842d63a6c56e8a38c1c38d8b3ed2c23688ae0f0925f8208ece9c765d8987d0f3e6963cb8dcc8faa5ab11dc4e544c95af444d4a3
@@ -9,6 +9,6 @@ class AjaxController < ApplicationController
9
9
  end
10
10
 
11
11
  def validate_organization_enabled!
12
- Organization.current.validate_enabled!
12
+ Organization.current.validate_enabled! unless current_user&.teacher_here?
13
13
  end
14
14
  end
@@ -19,11 +19,11 @@ class ApplicationController < ActionController::Base
19
19
  before_action :set_time_zone!
20
20
 
21
21
  before_action :ensure_user_enabled!, if: :current_user?
22
-
23
22
  before_action :redirect_to_proper_context!, if: :immersive_context_wrong?
24
- before_action :validate_active_organization!
25
23
 
26
24
  before_action :authorize_if_private!
25
+ before_action :validate_active_organization!
26
+
27
27
  before_action :validate_user_profile!, if: :current_user?
28
28
  before_action :validate_accepted_role_terms!, if: :current_user?
29
29
  before_action :ensure_restore_progress!, if: :current_user?
@@ -184,7 +184,10 @@ module DiscussionsHelper
184
184
  end
185
185
 
186
186
  def discussion_info(discussion)
187
- "#{t(:time_since, time: time_ago_in_words(discussion.created_at))} · #{t(:reply_count, count: discussion.visible_messages.size)}"
187
+ <<~HTML.html_safe
188
+ <span>#{friendly_time(discussion.created_at, :time_since)}</span>
189
+ <span> · #{t(:reply_count, count: discussion.visible_messages.size)}</span>
190
+ HTML
188
191
  end
189
192
 
190
193
  def discussion_filter_params_without_page
@@ -8,7 +8,7 @@ module EditorHelper
8
8
 
9
9
  def read_only_editor(content, language, options = {})
10
10
  editor_options = editor_defaults(language, options.deep_merge(data: { readonly: true }), 'editor')
11
- text_area_tag :solution_content, content, editor_options
11
+ text_area_tag 'solution[content]', content, editor_options
12
12
  end
13
13
 
14
14
  def spell_checked_editor(name, options = {})
@@ -0,0 +1,12 @@
1
+ module TimeHelper
2
+ def friendly_time(time, t_key = nil)
3
+ friendly_time = time_ago_in_words time
4
+ friendly_time_t = t_key ? t(t_key, time: friendly_time) : friendly_time
5
+
6
+ <<~HTML.html_safe
7
+ <time title="#{time}">
8
+ #{friendly_time_t}
9
+ </time>
10
+ HTML
11
+ end
12
+ end
@@ -1,6 +1,6 @@
1
1
  module UserDiscussionsHelper
2
2
  def user_discussions_table_title(discussion, user, last_read)
3
- %Q{
3
+ <<~HTML.html_safe
4
4
  <tr></tr>
5
5
  <thead>
6
6
  <tr>
@@ -9,30 +9,30 @@ module UserDiscussionsHelper
9
9
  </td>
10
10
  </tr>
11
11
  </thead>
12
- }.html_safe
12
+ HTML
13
13
  end
14
14
 
15
15
  def user_discussions_table_header
16
- %Q{
16
+ <<~HTML.html_safe
17
17
  <tr class="fw-bold">
18
18
  <td></td>
19
19
  <td>#{t(:exercise)}</td>
20
20
  <td>#{t(:discussion_created_by)}</td>
21
21
  <td>#{t(:last_message)}</td>
22
22
  </tr>
23
- }.html_safe
23
+ HTML
24
24
  end
25
25
 
26
26
  def user_discussions_table_item(discussion, user)
27
- %Q{
27
+ <<~HTML.html_safe
28
28
  <tr>
29
29
  <td class="text-center">
30
30
  #{icon_for_read(discussion.read_by?(user))}
31
31
  </td>
32
32
  <td>#{link_to discussion.item.name, item_discussion_path(discussion)}</td>
33
33
  <td>#{discussion_user_name discussion.initiator}</td>
34
- <td>#{t(:time_since, time: time_ago_in_words(discussion.last_message_date))}</td>
34
+ <td>#{friendly_time(discussion.last_message_date, :time_since)}</td>
35
35
  </tr>
36
- }.html_safe
36
+ HTML
37
37
  end
38
38
  end
@@ -4,7 +4,7 @@
4
4
  <div class="discussion-message-bubble-title">
5
5
  <%= linked_discussion_user_name(discussion.initiator) %>
6
6
  <span class="message-date">
7
- <%= t(:time_since, time: time_ago_in_words(discussion.created_at)) %>
7
+ <%= friendly_time(discussion.created_at, :time_since) %>
8
8
  </span>
9
9
  </div>
10
10
  </div>
@@ -7,7 +7,7 @@
7
7
  <span class="moderator-badge"><%= t(:moderation) %></span>
8
8
  <% end %>
9
9
  <span class="message-date">
10
- <%= t(:time_since, time: time_ago_in_words(message.created_at)) %>
10
+ <%= friendly_time(message.created_at, :time_since) %>
11
11
  </span>
12
12
  <span class="actions">
13
13
  <% if message.authorized?(current_user) && !message.deleted? %>
@@ -47,7 +47,7 @@
47
47
  <% if current_user&.moderator_here? %>
48
48
  <hr>
49
49
  <%= t :deleted_by, deleter: message.deleted_by.name %>
50
- <%= t(:time_since, time: time_ago_in_words(message.deleted_at)) %>.
50
+ <%= friendly_time(message.deleted_at, :time_since) %>
51
51
  <a href='<%= "#deletedMessage#{message.id}" %>' data-bs-toggle="collapse">
52
52
  <%= t :show_message %>
53
53
  </a>
@@ -26,7 +26,7 @@
26
26
  </span>
27
27
  <span class="discussion-initiator">
28
28
  <strong><%= discussion_user_name discussion.initiator %></strong>
29
- <%= t(:asked_time_since, time: time_ago_in_words(discussion.created_at)) %>
29
+ <%= friendly_time(discussion.created_at, :asked_time_since) %>
30
30
  <span class="discussion-status-icon">
31
31
  <%= discussion_status_fa_icon(discussion) %>
32
32
  </span>
@@ -6,7 +6,7 @@
6
6
  <div class="message">
7
7
  <p> <%= message.content_html %></p>
8
8
  <div class="sender"><%= message.sender unless message.sender == current_user_uid %></div>
9
- <time><%= time_ago_in_words message.created_at %></time>
9
+ <%= friendly_time(message.created_at) %>
10
10
  </div>
11
11
  </li>
12
12
  <% end %>
@@ -31,7 +31,7 @@
31
31
  <span> <strong><%= t :email %>:</strong> <%= @user.email %> </span>
32
32
  </div>
33
33
  <div>
34
- <span> <strong><%= t :programming_since %>:</strong> <%= t(:time_since, time: time_ago_in_words(@user.created_at)) %> </span>
34
+ <span> <strong><%= t :programming_since %>:</strong> <%= friendly_time(@user.created_at, :time_since) %> </span>
35
35
  </div>
36
36
  </div>
37
37
  </div>
@@ -20,7 +20,7 @@
20
20
  <td><%= icon_for_read(message.read?) %></td>
21
21
  <td><%= link_to message.exercise.name, exercise_path(message.exercise.id) %></td>
22
22
  <td><%= mail_to message.sender %></td>
23
- <td><%= time_ago_in_words message.created_at %></td>
23
+ <td><%= friendly_time(message.created_at) %></td>
24
24
  </tr>
25
25
  <% end %>
26
26
  </table>
@@ -38,7 +38,7 @@
38
38
  <%= render partial: "notifications/#{notification.subject}", locals: { notification: notification } %>
39
39
  </td>
40
40
  <td class="col-md-3">
41
- <%= t(:time_since, time: time_ago_in_words(notification.created_at)) %>
41
+ <%= friendly_time(notification.created_at, :time_since) %>
42
42
  </td>
43
43
  </tr>
44
44
  <% end %>
@@ -1,5 +1,5 @@
1
1
  module Mumuki
2
2
  module Laboratory
3
- VERSION = '9.15.0'
3
+ VERSION = '9.16.0'
4
4
  end
5
5
  end
@@ -30,7 +30,7 @@ feature 'not found private on app', organization_workspace: :base do
30
30
  expect(page.text).to json_eq errors: [
31
31
  'The operation on organization base' +
32
32
  ' was forbidden to user foo+1@bar.com' +
33
- ' with permissions !student:central/*;teacher:;headmaster:;janitor:;admin:;owner:;ex_student:']
33
+ ' with permissions !student:central/*;teacher:;headmaster:;janitor:;admin:;owner:']
34
34
  end
35
35
 
36
36
  scenario 'api with authentication', :json_eq_error do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mumuki-laboratory
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.15.0
4
+ version: 9.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franco Bulgarelli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-09 00:00:00.000000000 Z
11
+ date: 2021-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 9.15.0
33
+ version: 9.16.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 9.15.0
40
+ version: 9.16.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: mumukit-bridge
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -567,6 +567,7 @@ files:
567
567
  - app/helpers/progress_bar_helper.rb
568
568
  - app/helpers/progress_helper.rb
569
569
  - app/helpers/runner_assets_helper.rb
570
+ - app/helpers/time_helper.rb
570
571
  - app/helpers/time_zone_helper.rb
571
572
  - app/helpers/toast_helper.rb
572
573
  - app/helpers/user_activity_helper.rb
@@ -980,135 +981,135 @@ signing_key:
980
981
  specification_version: 4
981
982
  summary: Code assement web application for the Mumuki Platform.
982
983
  test_files:
983
- - spec/evaluation_helper.rb
984
- - spec/api_helper.rb
985
- - spec/features/exams_flow_spec.rb
986
- - spec/features/standard_flow_spec.rb
987
- - spec/features/guides_flow_spec.rb
988
- - spec/features/dynamic_exam_spec.rb
989
- - spec/features/disabled_organization_flow_spec.rb
990
- - spec/features/user_activity_flow_spec.rb
984
+ - spec/features/disable_user_flow_spec.rb
985
+ - spec/features/exercise_flow_spec.rb
986
+ - spec/features/certificate_programs_flow_spec.rb
987
+ - spec/features/progressive_tips_spec.rb
988
+ - spec/features/runner_assets_spec.rb
989
+ - spec/features/guide_reset_spec.rb
991
990
  - spec/features/home_public_flow_spec.rb
991
+ - spec/features/links_flow_spec.rb
992
+ - spec/features/not_found_private_flow_spec.rb
993
+ - spec/features/dynamic_exam_spec.rb
994
+ - spec/features/chapters_flow_spec.rb
992
995
  - spec/features/read_only_flow_spec.rb
996
+ - spec/features/discussion_flow_spec.rb
997
+ - spec/features/complements_flow_spec.rb
998
+ - spec/features/standard_flow_spec.rb
999
+ - spec/features/user_activity_flow_spec.rb
1000
+ - spec/features/invitations_flow_spec.rb
993
1001
  - spec/features/home_private_flow_spec.rb
994
- - spec/features/immersive_redirection_spec.rb
995
- - spec/features/progressive_tips_spec.rb
1002
+ - spec/features/exams_flow_spec.rb
1003
+ - spec/features/topic_flow_spec.rb
996
1004
  - spec/features/login_flow_spec.rb
997
- - spec/features/exercise_flow_spec.rb
998
- - spec/features/disable_user_flow_spec.rb
999
- - spec/features/menu_bar_spec.rb
1000
- - spec/features/not_found_private_flow_spec.rb
1001
- - spec/features/guide_reset_spec.rb
1002
- - spec/features/notifications_flow_spec.rb
1005
+ - spec/features/not_found_public_flow_spec.rb
1006
+ - spec/features/immersive_redirection_spec.rb
1007
+ - spec/features/disabled_organization_flow_spec.rb
1003
1008
  - spec/features/lessons_flow_spec.rb
1004
- - spec/features/chapters_flow_spec.rb
1009
+ - spec/features/guides_flow_spec.rb
1010
+ - spec/features/notifications_flow_spec.rb
1011
+ - spec/features/menu_bar_spec.rb
1005
1012
  - spec/features/profile_flow_spec.rb
1006
- - spec/features/complements_flow_spec.rb
1007
- - spec/features/not_found_public_flow_spec.rb
1008
- - spec/features/certificate_programs_flow_spec.rb
1009
- - spec/features/topic_flow_spec.rb
1010
- - spec/features/links_flow_spec.rb
1011
- - spec/features/runner_assets_spec.rb
1012
- - spec/features/invitations_flow_spec.rb
1013
- - spec/features/discussion_flow_spec.rb
1014
1013
  - spec/features/terms_flow_spec.rb
1015
- - spec/capybara_helper.rb
1014
+ - spec/javascripts/results-renderers-spec.js
1015
+ - spec/javascripts/i18n-spec.js
1016
1016
  - spec/javascripts/gamification-spec.js
1017
- - spec/javascripts/upload-spec.js
1017
+ - spec/javascripts/global-spec.js
1018
+ - spec/javascripts/elipsis-spec.js
1019
+ - spec/javascripts/kids-button-spec.js
1020
+ - spec/javascripts/sync-mode-spec.js
1021
+ - spec/javascripts/spec-helper.js
1018
1022
  - spec/javascripts/timer-spec.js
1023
+ - spec/javascripts/csrf-token-spec.js
1024
+ - spec/javascripts/submissions-store-spec.js
1019
1025
  - spec/javascripts/timeout-spec.js
1020
- - spec/javascripts/elipsis-spec.js
1021
1026
  - spec/javascripts/editors-spec.js
1022
1027
  - spec/javascripts/speech-bubble-renderer-spec.js
1023
- - spec/javascripts/results-renderers-spec.js
1024
- - spec/javascripts/sync-mode-spec.js
1025
- - spec/javascripts/i18n-spec.js
1026
- - spec/javascripts/submissions-store-spec.js
1027
- - spec/javascripts/kids-button-spec.js
1028
+ - spec/javascripts/upload-spec.js
1028
1029
  - spec/javascripts/exercise-spec.js
1029
- - spec/javascripts/global-spec.js
1030
- - spec/javascripts/bridge-spec.js
1031
1030
  - spec/javascripts/events-spec.js
1032
- - spec/javascripts/spec-helper.js
1033
- - spec/javascripts/csrf-token-spec.js
1034
- - spec/login_helper.rb
1031
+ - spec/javascripts/bridge-spec.js
1035
1032
  - spec/spec_helper.rb
1036
- - spec/controllers/exam_authorization_requests_controller_spec.rb
1037
- - spec/controllers/api_clients_controller.rb
1038
- - spec/controllers/exercise_solutions_controller_spec.rb
1039
- - spec/controllers/discussions_controller_spec.rb
1040
- - spec/controllers/exam_registrations_controller_spec.rb
1041
- - spec/controllers/organizations_api_controller_spec.rb
1042
- - spec/controllers/certificates_controller_spec.rb
1043
- - spec/controllers/discussions_messages_controller_spec.rb
1044
- - spec/controllers/users_controller_spec.rb
1045
- - spec/controllers/invitations_controller_spec.rb
1046
- - spec/controllers/guide_progress_controller_spec.rb
1047
- - spec/controllers/users_api_controller_spec.rb
1048
- - spec/controllers/students_api_controller_spec.rb
1049
- - spec/controllers/confirmations_controller_spec.rb
1050
- - spec/controllers/messages_controller_spec.rb
1051
- - spec/controllers/chapters_controller_spec.rb
1052
- - spec/controllers/courses_api_controller_spec.rb
1053
- - spec/mailers/user_mailer_spec.rb
1054
- - spec/mailers/previews/user_mailer_preview.rb
1055
1033
  - spec/teaspoon_env.rb
1056
- - spec/dummy/bin/update
1057
- - spec/dummy/bin/yarn
1058
- - spec/dummy/bin/rake
1059
- - spec/dummy/bin/bundle
1060
- - spec/dummy/bin/setup
1061
- - spec/dummy/bin/rails
1062
- - spec/dummy/config/cable.yml
1063
- - spec/dummy/config/boot.rb
1064
- - spec/dummy/config/secrets.yml
1034
+ - spec/evaluation_helper.rb
1035
+ - spec/dummy/public/medal/outline.svg
1036
+ - spec/dummy/public/error/404.svg
1037
+ - spec/dummy/public/error/500.svg
1038
+ - spec/dummy/public/error/timeout_3.svg
1039
+ - spec/dummy/public/error/timeout_1.svg
1040
+ - spec/dummy/public/error/timeout_2.svg
1041
+ - spec/dummy/public/error/401.svg
1042
+ - spec/dummy/public/error/403.svg
1043
+ - spec/dummy/public/error/410.svg
1044
+ - spec/dummy/public/character/animations.json
1045
+ - spec/dummy/public/character/magnifying_glass/apparition.svg
1046
+ - spec/dummy/public/character/magnifying_glass/loop.svg
1047
+ - spec/dummy/public/character/kibi/failure.svg
1048
+ - spec/dummy/public/character/kibi/context.svg
1049
+ - spec/dummy/public/character/kibi/passed_with_warnings.svg
1050
+ - spec/dummy/public/character/kibi/jump.svg
1051
+ - spec/dummy/public/character/kibi/success_l.svg
1052
+ - spec/dummy/public/character/kibi/success2_l.svg
1053
+ - spec/dummy/Rakefile
1054
+ - spec/dummy/config/application.rb
1055
+ - spec/dummy/config/puma.rb
1056
+ - spec/dummy/config/spring.rb
1065
1057
  - spec/dummy/config/routes.rb
1066
1058
  - spec/dummy/config/environments/test.rb
1067
1059
  - spec/dummy/config/environments/development.rb
1068
- - spec/dummy/config/locales/en.yml
1069
- - spec/dummy/config/initializers/cookies_serializer.rb
1070
- - spec/dummy/config/initializers/wrap_parameters.rb
1060
+ - spec/dummy/config/database.yml
1071
1061
  - spec/dummy/config/initializers/assets.rb
1062
+ - spec/dummy/config/initializers/wrap_parameters.rb
1072
1063
  - spec/dummy/config/initializers/filter_parameter_logging.rb
1073
- - spec/dummy/config/application.rb
1074
- - spec/dummy/config/spring.rb
1075
- - spec/dummy/config/database.yml
1076
- - spec/dummy/config/environment.rb
1064
+ - spec/dummy/config/initializers/cookies_serializer.rb
1077
1065
  - spec/dummy/config/rabbit.yml
1078
- - spec/dummy/config/puma.rb
1079
- - spec/dummy/Rakefile
1080
- - spec/dummy/db/schema.rb
1081
- - spec/dummy/db/seeds.rb
1082
- - spec/dummy/public/character/kibi/success_l.svg
1083
- - spec/dummy/public/character/kibi/failure.svg
1084
- - spec/dummy/public/character/kibi/context.svg
1085
- - spec/dummy/public/character/kibi/jump.svg
1086
- - spec/dummy/public/character/kibi/success2_l.svg
1087
- - spec/dummy/public/character/kibi/passed_with_warnings.svg
1088
- - spec/dummy/public/character/animations.json
1089
- - spec/dummy/public/character/magnifying_glass/loop.svg
1090
- - spec/dummy/public/character/magnifying_glass/apparition.svg
1091
- - spec/dummy/public/medal/outline.svg
1092
- - spec/dummy/public/error/timeout_2.svg
1093
- - spec/dummy/public/error/410.svg
1094
- - spec/dummy/public/error/timeout_3.svg
1095
- - spec/dummy/public/error/500.svg
1096
- - spec/dummy/public/error/403.svg
1097
- - spec/dummy/public/error/timeout_1.svg
1098
- - spec/dummy/public/error/404.svg
1099
- - spec/dummy/public/error/401.svg
1100
- - spec/dummy/config.ru
1066
+ - spec/dummy/config/locales/en.yml
1067
+ - spec/dummy/config/cable.yml
1068
+ - spec/dummy/config/environment.rb
1069
+ - spec/dummy/config/secrets.yml
1070
+ - spec/dummy/config/boot.rb
1101
1071
  - spec/dummy/package.json
1102
- - spec/helpers/with_choices_spec.rb
1103
- - spec/helpers/email_helper_spec.rb
1072
+ - spec/dummy/config.ru
1073
+ - spec/dummy/db/seeds.rb
1074
+ - spec/dummy/db/schema.rb
1075
+ - spec/dummy/bin/yarn
1076
+ - spec/dummy/bin/rails
1077
+ - spec/dummy/bin/rake
1078
+ - spec/dummy/bin/bundle
1079
+ - spec/dummy/bin/setup
1080
+ - spec/dummy/bin/update
1081
+ - spec/controllers/certificates_controller_spec.rb
1082
+ - spec/controllers/students_api_controller_spec.rb
1083
+ - spec/controllers/api_clients_controller.rb
1084
+ - spec/controllers/organizations_api_controller_spec.rb
1085
+ - spec/controllers/exam_authorization_requests_controller_spec.rb
1086
+ - spec/controllers/confirmations_controller_spec.rb
1087
+ - spec/controllers/exam_registrations_controller_spec.rb
1088
+ - spec/controllers/users_controller_spec.rb
1089
+ - spec/controllers/exercise_solutions_controller_spec.rb
1090
+ - spec/controllers/discussions_controller_spec.rb
1091
+ - spec/controllers/courses_api_controller_spec.rb
1092
+ - spec/controllers/discussions_messages_controller_spec.rb
1093
+ - spec/controllers/users_api_controller_spec.rb
1094
+ - spec/controllers/messages_controller_spec.rb
1095
+ - spec/controllers/invitations_controller_spec.rb
1096
+ - spec/controllers/guide_progress_controller_spec.rb
1097
+ - spec/controllers/chapters_controller_spec.rb
1098
+ - spec/login_helper.rb
1099
+ - spec/mailers/previews/user_mailer_preview.rb
1100
+ - spec/mailers/user_mailer_spec.rb
1101
+ - spec/capybara_helper.rb
1102
+ - spec/helpers/icons_helper_spec.rb
1103
+ - spec/helpers/certificate_helper_spec.rb
1104
1104
  - spec/helpers/test_results_rendering_spec.rb
1105
- - spec/helpers/authors_helper_spec.rb
1105
+ - spec/helpers/avatar_helper_spec.rb
1106
+ - spec/helpers/exercise_input_helper_spec.rb
1106
1107
  - spec/helpers/with_navigation_spec.rb
1107
- - spec/helpers/certificate_helper_spec.rb
1108
- - spec/helpers/page_title_helper_spec.rb
1108
+ - spec/helpers/email_helper_spec.rb
1109
1109
  - spec/helpers/user_activity_helper_spec.rb
1110
- - spec/helpers/application_helper_spec.rb
1110
+ - spec/helpers/with_choices_spec.rb
1111
1111
  - spec/helpers/breadcrumbs_helper_spec.rb
1112
- - spec/helpers/icons_helper_spec.rb
1113
- - spec/helpers/exercise_input_helper_spec.rb
1114
- - spec/helpers/avatar_helper_spec.rb
1112
+ - spec/helpers/page_title_helper_spec.rb
1113
+ - spec/helpers/application_helper_spec.rb
1114
+ - spec/helpers/authors_helper_spec.rb
1115
+ - spec/api_helper.rb