From 378df2ab9f821bb7cc6acfe80aa14c67a113d6e4 Mon Sep 17 00:00:00 2001 From: Ben Lovell Date: Wed, 24 Jul 2024 15:41:19 +0500 Subject: [PATCH] Allow up to 7 digits for FCA numbers FCA now has entries listed with up to 7 digits for identification. We only allowed 6 digits precisely before so this change permits FCA numbers between 6-7 digits long. A new run of FCA data will need to run first to backfill the reference data as prior to this change we were quietly dropping any reference data identified by FCA numbers not precisely 6 digits long. --- app/models/lookup/firm.rb | 2 +- app/models/lookup/subsidiary.rb | 2 +- app/models/principal.rb | 2 +- spec/models/lookup/firm_spec.rb | 5 +++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/models/lookup/firm.rb b/app/models/lookup/firm.rb index 73cdb77cf..a36c0edc4 100644 --- a/app/models/lookup/firm.rb +++ b/app/models/lookup/firm.rb @@ -3,7 +3,7 @@ class Firm < ApplicationRecord has_many :subsidiaries, primary_key: :fca_number, foreign_key: :fca_number validates :fca_number, - length: { is: 6 }, + length: { in: 6..7 }, numericality: { only_integer: true } def subsidiaries? diff --git a/app/models/lookup/subsidiary.rb b/app/models/lookup/subsidiary.rb index bb3ffdbe8..58b84bddc 100644 --- a/app/models/lookup/subsidiary.rb +++ b/app/models/lookup/subsidiary.rb @@ -1,7 +1,7 @@ module Lookup class Subsidiary < ApplicationRecord validates :fca_number, - length: { is: 6 }, + length: { in: 6..7 }, numericality: { only_integer: true } def self.table_name diff --git a/app/models/principal.rb b/app/models/principal.rb index b67b57ba1..fb42f67b3 100644 --- a/app/models/principal.rb +++ b/app/models/principal.rb @@ -25,7 +25,7 @@ class Principal < ApplicationRecord validates :fca_number, presence: true, uniqueness: true, - length: { is: 6 }, + length: { in: 6..7 }, numericality: { only_integer: true } validates :email_address, diff --git a/spec/models/lookup/firm_spec.rb b/spec/models/lookup/firm_spec.rb index f8c8b0958..ae7ce0d65 100644 --- a/spec/models/lookup/firm_spec.rb +++ b/spec/models/lookup/firm_spec.rb @@ -11,8 +11,9 @@ expect(described_class.new(fca_number: '123A45')).to_not be_valid end - it 'accepts only 6 digits' do - expect(described_class.new(fca_number: 1_234_567)).to_not be_valid + it 'accepts between 6 and 7 digits' do + expect(described_class.new(fca_number: 1_234_567)).to be_valid + expect(described_class.new(fca_number: 1_234_567_8)).to_not be_valid end end end