Add urgent scope to SoftwareUpdate model

This commit is contained in:
Matt Jankowski 2024-11-14 10:34:48 -05:00
parent 766358e52b
commit c24cbc60e3
3 changed files with 16 additions and 1 deletions

View file

@ -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)

View file

@ -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

View file

@ -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) }