From 434a9671cc509b7276da0b4297e656191367091b Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Fri, 28 Nov 2025 14:27:14 -0500 Subject: [PATCH] Ensure Account::ExternalIdSequenceTest.value is never nil If no record exists, create it. This fixes a test in fizzy-saas in test/models/signup_test.rb that was not actually testing with a valid external account id. --- app/models/account/external_id_sequence.rb | 2 +- test/models/account/external_id_sequence_test.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/models/account/external_id_sequence.rb b/app/models/account/external_id_sequence.rb index 8d9cecf6d..3e76e1e24 100644 --- a/app/models/account/external_id_sequence.rb +++ b/app/models/account/external_id_sequence.rb @@ -8,7 +8,7 @@ class Account::ExternalIdSequence < ApplicationRecord end def value - first&.value + first&.value || self.next end private diff --git a/test/models/account/external_id_sequence_test.rb b/test/models/account/external_id_sequence_test.rb index 0ce72a0a8..e52f3ccc5 100644 --- a/test/models/account/external_id_sequence_test.rb +++ b/test/models/account/external_id_sequence_test.rb @@ -39,4 +39,16 @@ class Account::ExternalIdSequenceTest < ActiveSupport::TestCase assert_equal values.min..values.max, values.sort.first..values.sort.last assert_equal 20, values.max - values.min + 1, "Values should be sequential with no gaps" end + + test "#value creates the first record if it doesn't yet exist" do + assert_nil Account::ExternalIdSequence.first + + value = nil + assert_difference -> { Account::ExternalIdSequence.count }, 1 do + value = Account::ExternalIdSequence.value + end + + assert_not_nil value + assert_equal value, Account::ExternalIdSequence.first.value + end end