diff --git a/app/mailers/admin_mailer.rb b/app/mailers/admin_mailer.rb index fffbbb3c6d..d6523d9f4b 100644 --- a/app/mailers/admin_mailer.rb +++ b/app/mailers/admin_mailer.rb @@ -56,7 +56,7 @@ class AdminMailer < ApplicationMailer end def new_critical_software_updates - @software_updates = SoftwareUpdate.where(urgent: true).to_a.sort_by(&:gem_version) + @software_updates = SoftwareUpdate.urgent.to_a.sort_by(&:gem_version) locale_for_account(@me) do mail subject: default_i18n_subject(instance: @instance) diff --git a/app/models/software_update.rb b/app/models/software_update.rb index 7e2b15656e..9746772a6a 100644 --- a/app/models/software_update.rb +++ b/app/models/software_update.rb @@ -18,6 +18,8 @@ class SoftwareUpdate < ApplicationRecord enum :type, { patch: 0, minor: 1, major: 2 }, suffix: :type + scope :urgent, -> { where(urgent: true) } + def gem_version Gem::Version.new(version) end diff --git a/spec/models/software_update_spec.rb b/spec/models/software_update_spec.rb index 43e9cd058f..fc3f29be75 100644 --- a/spec/models/software_update_spec.rb +++ b/spec/models/software_update_spec.rb @@ -3,6 +3,19 @@ require 'rails_helper' RSpec.describe SoftwareUpdate do + describe 'Scopes' do + describe '.urgent' do + let!(:urgent_update) { Fabricate :software_update, urgent: true } + let!(:non_urgent_update) { Fabricate :software_update, urgent: false } + + it 'returns records that are urgent' do + expect(described_class.urgent) + .to include(urgent_update) + .and not_include(non_urgent_update) + end + end + end + describe '#pending?' do subject { described_class.new(version: update_version) }