Skip to content

Commit 86d1fda

Browse files
committed
Number of small Rubocop fixings and refactorings.
1 parent 1eec9b4 commit 86d1fda

4 files changed

Lines changed: 35 additions & 19 deletions

File tree

app/controllers/admin/school_import_results_controller.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def new
5353

5454
def create
5555
if params[:csv_file].blank?
56-
flash[:error] = 'CSV file is required'
56+
flash[:error] = I18n.t('errors.admin.csv_file_required')
5757
redirect_to new_admin_school_import_result_path
5858
return
5959
end
@@ -140,9 +140,9 @@ def fetch_users_batch(user_ids)
140140
return {} if user_ids.empty?
141141

142142
users = UserInfoApiClient.fetch_by_ids(user_ids)
143-
users.index_by do |user|
144-
user[:id]
145-
end
143+
return {} if users.nil?
144+
145+
users.index_by { |user| user[:id] }
146146
rescue StandardError => e
147147
Rails.logger.error("Failed to batch fetch user info: #{e.message}")
148148
{}

app/fields/status_field.rb

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,32 @@ def job_status
1313
job = GoodJob::Job.find_by(active_job_id: data)
1414
return 'not_found' unless job
1515

16-
return 'discarded' if job.discarded?
17-
return 'succeeded' if job.succeeded?
18-
return 'failed' if job.finished? && job.error.present?
19-
return 'running' if job.running?
20-
return 'scheduled' if job.scheduled_at.present? && job.scheduled_at > Time.current
21-
22-
'queued'
16+
determine_job_status(job)
2317
end
2418

2519
def status_class
2620
case job_status
27-
when 'succeeded' then 'status-completed'
28-
when 'completed' then 'status-completed'
29-
when 'failed' then 'status-failed'
30-
when 'discarded' then 'status-failed'
21+
when 'succeeded', 'completed' then 'status-completed'
22+
when 'failed', 'discarded' then 'status-failed'
3123
when 'running' then 'status-running'
3224
when 'queued', 'scheduled' then 'status-queued'
3325
else 'status-unknown'
3426
end
3527
end
28+
29+
private
30+
31+
def determine_job_status(job)
32+
return 'discarded' if job.discarded?
33+
return 'succeeded' if job.succeeded?
34+
return 'failed' if job.finished? && job.error.present?
35+
return 'running' if job.running?
36+
return 'scheduled' if scheduled?(job)
37+
38+
'queued'
39+
end
40+
41+
def scheduled?(job)
42+
job.scheduled_at.present? && job.scheduled_at > Time.current
43+
end
3644
end

config/locales/en.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ en:
22
errors:
33
admin:
44
unauthorized: "Not authorized."
5+
csv_file_required: "A CSV file is required."
56
project:
67
editing:
78
delete_default_component: "Cannot delete default file"

spec/requests/admin/school_import_results_spec.rb

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
require 'rails_helper'
44

55
RSpec.describe 'Admin::SchoolImportResults' do
6-
let(:admin_user) { create(:user, roles: 'editor-admin') }
6+
let(:admin_user) { create(:admin_user) }
77

88
before do
9-
allow_any_instance_of(Admin::ApplicationController).to receive(:current_user).and_return(admin_user)
9+
sign_in_as(admin_user)
1010

1111
# Stub UserInfoApiClient to avoid external API calls
1212
allow(UserInfoApiClient).to receive(:fetch_by_ids).and_return([
@@ -25,7 +25,7 @@
2525
end
2626

2727
context 'with existing import results' do
28-
let!(:import_result) do
28+
before do
2929
SchoolImportResult.create!(
3030
job_id: SecureRandom.uuid,
3131
user_id: admin_user.id,
@@ -175,12 +175,19 @@
175175
let(:non_admin_user) { create(:user, roles: nil) }
176176

177177
before do
178-
allow_any_instance_of(Admin::ApplicationController).to receive(:current_user).and_return(non_admin_user)
178+
sign_in_as(non_admin_user)
179179
end
180180

181181
it 'redirects non-admin users' do
182182
get admin_school_import_results_path
183183
expect(response).to redirect_to('/')
184184
end
185185
end
186+
187+
private
188+
189+
def sign_in_as(user)
190+
allow(User).to receive(:from_omniauth).and_return(user)
191+
get '/auth/callback'
192+
end
186193
end

0 commit comments

Comments
 (0)