mumuki-laboratory 9.21.0 → 9.22.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: e520213e1d2d2cd643b0ee1d9506324394a18978ea319f8f0c7917a1bfba8c2b
4
- data.tar.gz: a8e99258a755b5fbe2a2f3b4927b1102ebbcee837e995839bf1989324ff783af
3
+ metadata.gz: 132cadbd6244acaece507d8f75d1613daf1c4f9f682b1b929d5c6468102a596b
4
+ data.tar.gz: 45ce5c37552fe64a9766ac4548f944f045f843177b843706277ca56f42125dbd
5
5
  SHA512:
6
- metadata.gz: 51562ad86aab9f22e3c6ae6a651bdc22cdd84159eb9394122b12ff885f19ceac51b375544e852870a3c80ec689fd5bf98e9291c8797dddf444887269cb006ddc
7
- data.tar.gz: eb8b795ebfdd92ccb48d571558c5cba3866fb09ce03217f8a5a22cd82799a5bec70bcf97e8aa71789ca21d2d484c0ae928db7aa3b9fb955bb573d57af896cbcc
6
+ metadata.gz: 9c6046c3ce7394386bc2f43d3e063c7eae999a70d96fde67243809e1e107d4f35638333cdf87e9af9aa5f3ae797585c82bd69a1ba293511842eb9bc4608c4518
7
+ data.tar.gz: fdeaa6997d54fb7dd6a75224c25a3a40f0d2e05414b934ff1fc3e5f60568c2de6ac32b39c6bcbb0f5b6e09cffc3b53b51e6cb8264e3ade7ee1060ccd05ae4252
@@ -318,7 +318,6 @@ $moderator-badge-color: #dd9900;
318
318
  margin-bottom: 20px;
319
319
  .discussion-message-bubble-header {
320
320
  background-color: $mu-color-highlight-background;
321
- height: 40px;
322
321
  &:before {
323
322
  position: absolute;
324
323
  top: calc(20px - #{$discussion-message-arrow-size + 2px} / 2);
@@ -330,12 +329,11 @@ $moderator-badge-color: #dd9900;
330
329
  }
331
330
  .discussion-message-bubble-title {
332
331
  padding: 5px 15px;
333
- display: block;
332
+ display: flex;
334
333
  .message-date {
335
334
  font-size: 15px;
336
335
  }
337
336
  .actions {
338
- float: right;
339
337
  > a, .dropdown {
340
338
  margin-left: 20px;
341
339
  cursor: pointer;
@@ -53,37 +53,37 @@ module DiscussionsHelper
53
53
  end
54
54
 
55
55
  def forum_terms_link
56
- %Q{
56
+ <<~HTML.html_safe
57
57
  <span>
58
58
  #{ t(:forum_terms_link, terms_link: link_to_forum_terms).html_safe }
59
59
  </span>
60
- }.html_safe
60
+ HTML
61
61
  end
62
62
 
63
63
  def discussion_messages_count(discussion)
64
- %Q{
64
+ <<~HTML.html_safe
65
65
  <span class="discussion-messages-count">
66
66
  #{fa_icon :comments, type: :regular, text: discussion.messages_count}
67
67
  </span>
68
- }.html_safe
68
+ HTML
69
69
  end
70
70
 
71
71
  def discussion_validated_messages_count(discussion)
72
- %Q{
72
+ <<~HTML.html_safe
73
73
  <span class="discussion-validated-messages-count">
74
74
  #{fa_icon :comment, type: :regular}#{fa_icon :check, text: discussion.validated_messages_count}
75
75
  </span>
76
- }.html_safe
76
+ HTML
77
77
  end
78
78
 
79
79
  def discussion_upvotes_icon(discussion)
80
80
  if discussion.upvotes_count > 0
81
- %Q{
81
+ <<~HTML.html_safe
82
82
  <span class="discussion-icon fa-stack fa-xs">
83
83
  <i class="far fa-star fa-stack-2x"></i>
84
84
  <i class="fas fa-stack-1x">#{discussion.upvotes_count}</i>
85
85
  </span>
86
- }.html_safe
86
+ HTML
87
87
  end
88
88
  end
89
89
 
@@ -99,16 +99,21 @@ module DiscussionsHelper
99
99
  end
100
100
 
101
101
  def new_discussion_link(teaser_text, link_text)
102
- %Q{
102
+ <<~HTML.html_safe
103
103
  <h4>
104
104
  <span>#{t(teaser_text)}</span>
105
105
  #{link_to t(link_text), new_exercise_discussion_path(@debatable, anchor: 'new-discussion-description-container') }
106
106
  </h4>
107
- }.html_safe
107
+ HTML
108
108
  end
109
109
 
110
- def discussion_count_for_status(status, discussions)
111
- discussions.scoped_query_by(discussion_filter_params, excluded_params: [:status], excluded_methods: [:page]).by_status(status).count
110
+ def discussion_status_counts(discussions)
111
+ discussions.scoped_query_by(discussion_filter_params, excluded_params: [:status], excluded_methods: [:page])
112
+ .group(:status)
113
+ .reorder('')
114
+ .pluck(:status, 'count(*)')
115
+ .to_h
116
+ .transform_keys(&:to_sym)
112
117
  end
113
118
 
114
119
  def discussions_reset_query_link
@@ -122,11 +127,21 @@ module DiscussionsHelper
122
127
  #TODO: this one uses a long method chain in order to take advantage of eager load
123
128
  # Delegate it once again when polymorphic association is removed
124
129
  def discussions_languages(discussions)
125
- @languages ||= discussions.map { |it| it.exercise.language.name }.uniq
130
+ @languages ||= discussions.distinct
131
+ .joins(:exercise)
132
+ .pluck('languages.name')
126
133
  end
127
134
 
128
- def discussion_status_filter_link(status, discussions)
129
- discussions_count = discussion_count_for_status(status, discussions)
135
+ def discussion_status_filter_links(discussions)
136
+ status_counts = discussion_status_counts(discussions)
137
+
138
+ discussions_statuses.map do |status|
139
+ discussion_status_filter_link(status, status_counts)
140
+ end.compact.join("\n").html_safe
141
+ end
142
+
143
+ def discussion_status_filter_link(status, status_counts)
144
+ discussions_count = status_counts[status.to_sym] || 0
130
145
  if status.should_be_shown?(discussions_count, current_user)
131
146
  discussion_filter_item(:status, status) do
132
147
  discussion_status_filter(status, discussions_count)
@@ -135,17 +150,17 @@ module DiscussionsHelper
135
150
  end
136
151
 
137
152
  def discussion_status_filter(status, discussions_count)
138
- %Q{
139
- #{discussion_status_fa_icon(status)}
153
+ <<~HTML.html_safe
154
+ #{discussion_status_fa_icon(status)}
140
155
  <span>
141
156
  #{t("#{status}_count", count: discussions_count)}
142
157
  </span>
143
- }.html_safe
158
+ HTML
144
159
  end
145
160
 
146
161
  def discussion_dropdown_filter(label, filters, can_select_all = false, &block)
147
162
  if filters.present?
148
- %Q{
163
+ <<~HTML.html_safe
149
164
  <div class="dropdown discussions-toolbar-filter">
150
165
  <a id="dropdown-#{label}" data-bs-toggle="dropdown" role="menu">
151
166
  #{t label} #{fa_icon :'caret-down', class: 'fa-xs'}
@@ -155,7 +170,7 @@ module DiscussionsHelper
155
170
  #{discussion_filter_list(label, filters, &block)}
156
171
  </ul>
157
172
  </div>
158
- }.html_safe
173
+ HTML
159
174
  end
160
175
  end
161
176
 
@@ -244,7 +259,7 @@ module DiscussionsHelper
244
259
  end
245
260
 
246
261
  def discussion_delete_message_dropdown(discussion, message)
247
- %Q{
262
+ <<~HTML.html_safe
248
263
  <span class="dropdown">
249
264
  #{content_tag :span, fa_icon('trash-alt', type: :regular, class: 'fa-lg'), role: 'menu', 'data-bs-toggle': 'dropdown',
250
265
  class: 'discussion-delete-message', id: 'deleteDiscussionDropdown'}
@@ -254,17 +269,17 @@ module DiscussionsHelper
254
269
  #{discussion_delete_message_option discussion, message, :discloses_personal_information, 'user-tag'}
255
270
  </ul>
256
271
  </span>
257
- }.html_safe
272
+ HTML
258
273
  end
259
274
 
260
275
  def discussion_delete_message_option(discussion, message, motive, icon)
261
- %Q{
276
+ <<~HTML.html_safe
262
277
  <li>
263
278
  #{link_to fa_icon(icon, text: t("deletion_motive.#{motive}.present"), class: 'fa-fw fixed-icon'),
264
279
  discussion_message_path(discussion, message, motive: motive), method: :delete, class: 'dropdown-item',
265
280
  role: 'menuitem', data: { confirm: t(:are_you_sure, action: t(:destroy_message)) } }
266
281
  </li>
267
- }.html_safe
282
+ HTML
268
283
  end
269
284
 
270
285
  def message_deleted_text(message)
@@ -2,10 +2,12 @@
2
2
  <div class="discussion-message-bubble">
3
3
  <div class="discussion-message-bubble-header">
4
4
  <div class="discussion-message-bubble-title">
5
- <%= linked_discussion_user_name(discussion.initiator) %>
6
- <span class="message-date">
7
- <%= friendly_time(discussion.created_at, :time_since) %>
8
- </span>
5
+ <div class="flex-fill">
6
+ <%= linked_discussion_user_name(discussion.initiator) %>
7
+ <span class="message-date">
8
+ <%= friendly_time(discussion.created_at, :time_since) %>
9
+ </span>
10
+ </div>
9
11
  </div>
10
12
  </div>
11
13
  <div class="discussion-message-bubble-content">
@@ -2,14 +2,16 @@
2
2
  <div class="discussion-message-bubble">
3
3
  <div class="discussion-message-bubble-header">
4
4
  <div class="discussion-message-bubble-title">
5
- <%= linked_discussion_user_name user %>
6
- <% if message.from_moderator? %>
7
- <span class="moderator-badge"><%= t(:moderation) %></span>
8
- <% end %>
9
- <span class="message-date">
10
- <%= friendly_time(message.created_at, :time_since) %>
11
- </span>
12
- <span class="actions">
5
+ <div class="flex-fill">
6
+ <%= linked_discussion_user_name user %>
7
+ <% if message.from_moderator? %>
8
+ <span class="moderator-badge"><%= t(:moderation) %></span>
9
+ <% end %>
10
+ <span class="message-date">
11
+ <%= friendly_time(message.created_at, :time_since) %>
12
+ </span>
13
+ </div>
14
+ <span class="actions flex-shrink-0">
13
15
  <% if message.authorized?(current_user) && !message.deleted? %>
14
16
  <% if current_user&.moderator_here? %>
15
17
  <a class="discussion-message-approved <%= 'selected' if message.approved? %>"
@@ -26,7 +26,7 @@
26
26
  <%= render partial: 'discussions/description_message', locals: { discussion: @discussion } %>
27
27
  <% end %>
28
28
  <% @discussion.visible_messages.each do |message| %>
29
- <%= render partial: 'discussions/message', locals: { user: message.sender_user, message: message } %>
29
+ <%= render partial: 'discussions/message', locals: { user: message.sender, message: message } %>
30
30
  <% end %>
31
31
  <% if @discussion.commentable_by?(current_user) %>
32
32
  <hr class="message-divider">
@@ -3,9 +3,7 @@
3
3
  <div class="discussions-toolbar">
4
4
  <div class="discussions-toolbar-status">
5
5
  <div class="d-none d-lg-block">
6
- <% discussions_statuses.each do |status| %>
7
- <%= discussion_status_filter_link(status, @discussions) %>
8
- <% end %>
6
+ <%= discussion_status_filter_links(@discussions) %>
9
7
  </div>
10
8
  </div>
11
9
  <div>
@@ -1,5 +1,5 @@
1
1
  module Mumuki
2
2
  module Laboratory
3
- VERSION = '9.21.0'
3
+ VERSION = '9.22.0'
4
4
  end
5
5
  end
@@ -32,7 +32,7 @@ describe DiscussionsMessagesController, type: :controller, organization_workspac
32
32
  end
33
33
 
34
34
  describe 'delete' do
35
- let(:message) { create(:message, discussion: discussion, sender: student.uid) }
35
+ let(:message) { create(:message, discussion: discussion, sender: student) }
36
36
 
37
37
  describe 'for student' do
38
38
  before { set_current_user! student }
@@ -64,7 +64,7 @@ describe DiscussionsMessagesController, type: :controller, organization_workspac
64
64
  end
65
65
 
66
66
  describe 'someone else\'s message' do
67
- let(:message) { create(:message, discussion: discussion, sender: moderator.uid) }
67
+ let(:message) { create(:message, discussion: discussion, sender: moderator) }
68
68
  before do
69
69
  delete :destroy, params: {id: message.id, discussion_id: discussion.id, motive: :self_deleted}
70
70
  message.reload
@@ -94,7 +94,7 @@ describe DiscussionsMessagesController, type: :controller, organization_workspac
94
94
  end
95
95
 
96
96
  describe 'approve' do
97
- let(:message) { create(:message, discussion: discussion, sender: student.uid) }
97
+ let(:message) { create(:message, discussion: discussion, sender: student) }
98
98
 
99
99
  describe 'for student' do
100
100
  before { set_current_user! student }
@@ -114,7 +114,7 @@ describe DiscussionsMessagesController, type: :controller, organization_workspac
114
114
  end
115
115
 
116
116
  describe 'question' do
117
- let(:message) { create(:message, discussion: discussion, sender: student.uid) }
117
+ let(:message) { create(:message, discussion: discussion, sender: student) }
118
118
 
119
119
  describe 'for student' do
120
120
  before { set_current_user! student }
@@ -133,7 +133,7 @@ describe DiscussionsMessagesController, type: :controller, organization_workspac
133
133
  end
134
134
 
135
135
  describe 'preview' do
136
- let(:message) { create(:message, content: 'Message in **bold** and _italics_', discussion: discussion, sender: student.uid) }
136
+ let(:message) { create(:message, content: 'Message in **bold** and _italics_', discussion: discussion, sender: student) }
137
137
 
138
138
  describe 'for student' do
139
139
  before { set_current_user! student }
@@ -11,10 +11,10 @@ describe MessagesController, organization_workspace: :test do
11
11
 
12
12
  it { expect(response.status).to eq 302 }
13
13
  it { expect(user.assignments.size).to eq 1 }
14
- it { expect(user.messages.size).to eq 1 }
14
+ it { expect(user.direct_messages.size).to eq 1 }
15
15
 
16
16
  describe 'deleting exercises does delete all messages' do
17
- before { @message_id = user.messages.first.id }
17
+ before { @message_id = user.direct_messages.first.id }
18
18
  before { exercise.destroy }
19
19
 
20
20
  it { expect { Message.find(@message_id) }.to raise_exception(ActiveRecord::RecordNotFound) }
@@ -27,6 +27,6 @@ describe MessagesController, organization_workspace: :test do
27
27
 
28
28
  it { expect(response.status).to eq 302 }
29
29
  it { expect(user.assignments.size).to eq 1 }
30
- it { expect(user.messages.size).to eq 1 }
30
+ it { expect(user.direct_messages.size).to eq 1 }
31
31
  end
32
32
  end
@@ -387,10 +387,12 @@ ActiveRecord::Schema.define(version: 20211020224011) do
387
387
  t.datetime "deleted_at"
388
388
  t.bigint "deleted_by_id"
389
389
  t.bigint "assignment_id"
390
+ t.bigint "sender_id"
390
391
  t.boolean "from_moderator"
391
392
  t.index ["approved_by_id"], name: "index_messages_on_approved_by_id"
392
393
  t.index ["assignment_id"], name: "index_messages_on_assignment_id"
393
394
  t.index ["deleted_by_id"], name: "index_messages_on_deleted_by_id"
395
+ t.index ["sender_id"], name: "index_messages_on_sender_id"
394
396
  end
395
397
 
396
398
  create_table "notifications", force: :cascade do |t|
@@ -162,8 +162,8 @@ feature 'Discussion Flow', organization_workspace: :test do
162
162
  end
163
163
 
164
164
  context 'and forum enabled' do
165
- let!(:problem_2_discussion_message) { create(:message, discussion: problem_2_discussions.first, sender: another_student.uid) }
166
- let!(:another_problem_2_discussion_message) { create(:message, discussion: problem_2_discussions.first, sender: another_student.uid) }
165
+ let!(:problem_2_discussion_message) { create(:message, discussion: problem_2_discussions.first, sender: another_student) }
166
+ let!(:another_problem_2_discussion_message) { create(:message, discussion: problem_2_discussions.first, sender: another_student) }
167
167
  before do
168
168
  Organization.current.update! forum_enabled: true
169
169
  another_problem_2_discussion_message.soft_delete! :inappropriate_content, moderator
@@ -104,6 +104,8 @@ feature 'Profile Flow', organization_workspace: :test do
104
104
  end
105
105
 
106
106
  context 'with messages' do
107
+ before { create :user, uid: 'test-email@gmail.com' }
108
+
107
109
  scenario 'visit messages' do
108
110
  Organization.find_by_name('test').switch!
109
111
  problem.submit_solution! user, {content: 'something'}
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.21.0
4
+ version: 9.22.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-10-28 00:00:00.000000000 Z
11
+ date: 2021-11-04 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.21.0
33
+ version: 9.22.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.21.0
40
+ version: 9.22.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: mumukit-bridge
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -984,136 +984,136 @@ signing_key:
984
984
  specification_version: 4
985
985
  summary: Code assement web application for the Mumuki Platform.
986
986
  test_files:
987
- - spec/evaluation_helper.rb
988
- - spec/spec_helper.rb
989
- - spec/capybara_helper.rb
990
- - spec/login_helper.rb
991
- - spec/javascripts/events-spec.js
992
- - spec/javascripts/i18n-spec.js
993
- - spec/javascripts/bridge-spec.js
994
- - spec/javascripts/kids-button-spec.js
995
- - spec/javascripts/gamification-spec.js
996
- - spec/javascripts/timer-spec.js
997
- - spec/javascripts/speech-bubble-renderer-spec.js
998
- - spec/javascripts/results-renderers-spec.js
999
- - spec/javascripts/upload-spec.js
1000
- - spec/javascripts/sync-mode-spec.js
1001
- - spec/javascripts/submissions-store-spec.js
1002
- - spec/javascripts/elipsis-spec.js
1003
- - spec/javascripts/exercise-spec.js
1004
- - spec/javascripts/csrf-token-spec.js
1005
- - spec/javascripts/editors-spec.js
1006
- - spec/javascripts/timeout-spec.js
1007
- - spec/javascripts/global-spec.js
1008
- - spec/javascripts/spec-helper.js
1009
- - spec/helpers/avatar_helper_spec.rb
1010
- - spec/helpers/email_helper_spec.rb
1011
- - spec/helpers/certificate_helper_spec.rb
1012
- - spec/helpers/authors_helper_spec.rb
987
+ - spec/helpers/user_activity_helper_spec.rb
1013
988
  - spec/helpers/page_title_helper_spec.rb
1014
- - spec/helpers/exercise_input_helper_spec.rb
1015
- - spec/helpers/with_navigation_spec.rb
989
+ - spec/helpers/authors_helper_spec.rb
1016
990
  - spec/helpers/with_choices_spec.rb
1017
- - spec/helpers/breadcrumbs_helper_spec.rb
1018
991
  - spec/helpers/icons_helper_spec.rb
1019
- - spec/helpers/user_activity_helper_spec.rb
992
+ - spec/helpers/email_helper_spec.rb
993
+ - spec/helpers/breadcrumbs_helper_spec.rb
1020
994
  - spec/helpers/test_results_rendering_spec.rb
995
+ - spec/helpers/certificate_helper_spec.rb
996
+ - spec/helpers/with_navigation_spec.rb
1021
997
  - spec/helpers/application_helper_spec.rb
1022
- - spec/dummy/public/error/timeout_3.svg
1023
- - spec/dummy/public/error/timeout_1.svg
1024
- - spec/dummy/public/error/500.svg
1025
- - spec/dummy/public/error/401.svg
1026
- - spec/dummy/public/error/404.svg
1027
- - spec/dummy/public/error/410.svg
1028
- - spec/dummy/public/error/403.svg
1029
- - spec/dummy/public/error/timeout_2.svg
1030
- - spec/dummy/public/character/kibi/context.svg
998
+ - spec/helpers/exercise_input_helper_spec.rb
999
+ - spec/helpers/avatar_helper_spec.rb
1000
+ - spec/api_helper.rb
1001
+ - spec/dummy/config.ru
1002
+ - spec/dummy/bin/setup
1003
+ - spec/dummy/bin/bundle
1004
+ - spec/dummy/bin/rake
1005
+ - spec/dummy/bin/yarn
1006
+ - spec/dummy/bin/update
1007
+ - spec/dummy/bin/rails
1008
+ - spec/dummy/Rakefile
1009
+ - spec/dummy/db/schema.rb
1010
+ - spec/dummy/db/seeds.rb
1011
+ - spec/dummy/public/medal/outline.svg
1031
1012
  - spec/dummy/public/character/kibi/passed_with_warnings.svg
1032
1013
  - spec/dummy/public/character/kibi/success_l.svg
1014
+ - spec/dummy/public/character/kibi/jump.svg
1015
+ - spec/dummy/public/character/kibi/context.svg
1033
1016
  - spec/dummy/public/character/kibi/failure.svg
1034
1017
  - spec/dummy/public/character/kibi/success2_l.svg
1035
- - spec/dummy/public/character/kibi/jump.svg
1018
+ - spec/dummy/public/character/animations.json
1036
1019
  - spec/dummy/public/character/magnifying_glass/loop.svg
1037
1020
  - spec/dummy/public/character/magnifying_glass/apparition.svg
1038
- - spec/dummy/public/character/animations.json
1039
- - spec/dummy/public/medal/outline.svg
1040
- - spec/dummy/Rakefile
1041
- - spec/dummy/config/application.rb
1042
- - spec/dummy/config/environment.rb
1021
+ - spec/dummy/public/error/403.svg
1022
+ - spec/dummy/public/error/404.svg
1023
+ - spec/dummy/public/error/timeout_1.svg
1024
+ - spec/dummy/public/error/410.svg
1025
+ - spec/dummy/public/error/401.svg
1026
+ - spec/dummy/public/error/timeout_2.svg
1027
+ - spec/dummy/public/error/500.svg
1028
+ - spec/dummy/public/error/timeout_3.svg
1029
+ - spec/dummy/package.json
1043
1030
  - spec/dummy/config/spring.rb
1044
- - spec/dummy/config/database.yml
1031
+ - spec/dummy/config/puma.rb
1045
1032
  - spec/dummy/config/cable.yml
1046
- - spec/dummy/config/routes.rb
1033
+ - spec/dummy/config/secrets.yml
1034
+ - spec/dummy/config/environments/test.rb
1035
+ - spec/dummy/config/environments/development.rb
1047
1036
  - spec/dummy/config/boot.rb
1048
- - spec/dummy/config/puma.rb
1037
+ - spec/dummy/config/routes.rb
1038
+ - spec/dummy/config/locales/en.yml
1039
+ - spec/dummy/config/application.rb
1040
+ - spec/dummy/config/rabbit.yml
1041
+ - spec/dummy/config/database.yml
1042
+ - spec/dummy/config/environment.rb
1049
1043
  - spec/dummy/config/initializers/cookies_serializer.rb
1050
- - spec/dummy/config/initializers/filter_parameter_logging.rb
1051
- - spec/dummy/config/initializers/assets.rb
1052
1044
  - spec/dummy/config/initializers/wrap_parameters.rb
1053
- - spec/dummy/config/rabbit.yml
1054
- - spec/dummy/config/environments/development.rb
1055
- - spec/dummy/config/environments/test.rb
1056
- - spec/dummy/config/secrets.yml
1057
- - spec/dummy/config/locales/en.yml
1058
- - spec/dummy/bin/rails
1059
- - spec/dummy/bin/yarn
1060
- - spec/dummy/bin/rake
1061
- - spec/dummy/bin/setup
1062
- - spec/dummy/bin/update
1063
- - spec/dummy/bin/bundle
1064
- - spec/dummy/package.json
1065
- - spec/dummy/db/schema.rb
1066
- - spec/dummy/db/seeds.rb
1067
- - spec/dummy/config.ru
1068
- - spec/controllers/discussions_controller_spec.rb
1069
- - spec/controllers/api_clients_controller.rb
1070
- - spec/controllers/messages_controller_spec.rb
1071
- - spec/controllers/confirmations_controller_spec.rb
1072
- - spec/controllers/invitations_controller_spec.rb
1073
- - spec/controllers/users_controller_spec.rb
1074
- - spec/controllers/courses_api_controller_spec.rb
1075
- - spec/controllers/students_api_controller_spec.rb
1076
- - spec/controllers/guide_progress_controller_spec.rb
1077
- - spec/controllers/chapters_controller_spec.rb
1078
- - spec/controllers/exercise_solutions_controller_spec.rb
1079
- - spec/controllers/exercises_controller_spec.rb
1080
- - spec/controllers/discussions_messages_controller_spec.rb
1081
- - spec/controllers/organizations_api_controller_spec.rb
1082
- - spec/controllers/exam_registrations_controller_spec.rb
1083
- - spec/controllers/certificates_controller_spec.rb
1084
- - spec/controllers/exam_authorization_requests_controller_spec.rb
1085
- - spec/controllers/users_api_controller_spec.rb
1086
- - spec/api_helper.rb
1045
+ - spec/dummy/config/initializers/assets.rb
1046
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
1087
1047
  - spec/mailers/previews/user_mailer_preview.rb
1088
1048
  - spec/mailers/user_mailer_spec.rb
1089
- - spec/features/login_flow_spec.rb
1090
- - spec/features/links_flow_spec.rb
1091
- - spec/features/notifications_flow_spec.rb
1049
+ - spec/javascripts/events-spec.js
1050
+ - spec/javascripts/timeout-spec.js
1051
+ - spec/javascripts/speech-bubble-renderer-spec.js
1052
+ - spec/javascripts/elipsis-spec.js
1053
+ - spec/javascripts/gamification-spec.js
1054
+ - spec/javascripts/kids-button-spec.js
1055
+ - spec/javascripts/exercise-spec.js
1056
+ - spec/javascripts/global-spec.js
1057
+ - spec/javascripts/sync-mode-spec.js
1058
+ - spec/javascripts/submissions-store-spec.js
1059
+ - spec/javascripts/timer-spec.js
1060
+ - spec/javascripts/results-renderers-spec.js
1061
+ - spec/javascripts/upload-spec.js
1062
+ - spec/javascripts/csrf-token-spec.js
1063
+ - spec/javascripts/spec-helper.js
1064
+ - spec/javascripts/i18n-spec.js
1065
+ - spec/javascripts/bridge-spec.js
1066
+ - spec/javascripts/editors-spec.js
1067
+ - spec/features/user_activity_flow_spec.rb
1068
+ - spec/features/standard_flow_spec.rb
1069
+ - spec/features/chapters_flow_spec.rb
1070
+ - spec/features/profile_flow_spec.rb
1092
1071
  - spec/features/dynamic_exam_spec.rb
1072
+ - spec/features/disable_user_flow_spec.rb
1093
1073
  - spec/features/immersive_redirection_spec.rb
1074
+ - spec/features/disabled_organization_flow_spec.rb
1094
1075
  - spec/features/invitations_flow_spec.rb
1095
- - spec/features/chapters_flow_spec.rb
1096
- - spec/features/read_only_flow_spec.rb
1097
1076
  - spec/features/home_public_flow_spec.rb
1098
- - spec/features/runner_assets_spec.rb
1099
- - spec/features/disabled_organization_flow_spec.rb
1100
- - spec/features/user_activity_flow_spec.rb
1101
- - spec/features/guides_flow_spec.rb
1102
- - spec/features/terms_flow_spec.rb
1077
+ - spec/features/notifications_flow_spec.rb
1078
+ - spec/features/menu_bar_spec.rb
1079
+ - spec/features/login_flow_spec.rb
1080
+ - spec/features/certificate_programs_flow_spec.rb
1081
+ - spec/features/complements_flow_spec.rb
1103
1082
  - spec/features/home_private_flow_spec.rb
1083
+ - spec/features/guide_reset_spec.rb
1084
+ - spec/features/terms_flow_spec.rb
1104
1085
  - spec/features/progressive_tips_spec.rb
1105
1086
  - spec/features/not_found_private_flow_spec.rb
1106
- - spec/features/exercise_flow_spec.rb
1107
- - spec/features/profile_flow_spec.rb
1108
- - spec/features/certificate_programs_flow_spec.rb
1109
- - spec/features/guide_reset_spec.rb
1110
1087
  - spec/features/topic_flow_spec.rb
1111
- - spec/features/not_found_public_flow_spec.rb
1112
- - spec/features/disable_user_flow_spec.rb
1113
1088
  - spec/features/lessons_flow_spec.rb
1114
- - spec/features/menu_bar_spec.rb
1115
- - spec/features/standard_flow_spec.rb
1089
+ - spec/features/read_only_flow_spec.rb
1090
+ - spec/features/guides_flow_spec.rb
1091
+ - spec/features/not_found_public_flow_spec.rb
1092
+ - spec/features/exercise_flow_spec.rb
1093
+ - spec/features/links_flow_spec.rb
1094
+ - spec/features/runner_assets_spec.rb
1116
1095
  - spec/features/discussion_flow_spec.rb
1117
1096
  - spec/features/exams_flow_spec.rb
1118
- - spec/features/complements_flow_spec.rb
1097
+ - spec/login_helper.rb
1119
1098
  - spec/teaspoon_env.rb
1099
+ - spec/evaluation_helper.rb
1100
+ - spec/spec_helper.rb
1101
+ - spec/controllers/exercises_controller_spec.rb
1102
+ - spec/controllers/discussions_controller_spec.rb
1103
+ - spec/controllers/guide_progress_controller_spec.rb
1104
+ - spec/controllers/exam_authorization_requests_controller_spec.rb
1105
+ - spec/controllers/students_api_controller_spec.rb
1106
+ - spec/controllers/discussions_messages_controller_spec.rb
1107
+ - spec/controllers/users_controller_spec.rb
1108
+ - spec/controllers/organizations_api_controller_spec.rb
1109
+ - spec/controllers/certificates_controller_spec.rb
1110
+ - spec/controllers/users_api_controller_spec.rb
1111
+ - spec/controllers/messages_controller_spec.rb
1112
+ - spec/controllers/api_clients_controller.rb
1113
+ - spec/controllers/confirmations_controller_spec.rb
1114
+ - spec/controllers/exercise_solutions_controller_spec.rb
1115
+ - spec/controllers/courses_api_controller_spec.rb
1116
+ - spec/controllers/invitations_controller_spec.rb
1117
+ - spec/controllers/chapters_controller_spec.rb
1118
+ - spec/controllers/exam_registrations_controller_spec.rb
1119
+ - spec/capybara_helper.rb