ministryofjustice/Claim-for-Crown-Court-Defence

View on GitHub
app/validators/fee/lgfs/fee_type_rules.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true

module Fee
  module LGFS
    class FeeTypeRules
      include Fee::Concerns::FeeTypeRulesCreator

      def initialize
        with_set_for_fee_type('MIUMU') do |set|
          set << add_rule(*graduated_fee_type_only_rule)
          set << add_rule(*clar_fee_type_only_rule)
        end

        with_set_for_fee_type('MIUMO') do |set|
          set << add_rule(*graduated_fee_type_only_rule)
          set << add_rule(*clar_fee_type_only_rule)
        end
      end

      private

      # FIXME: Settings.clar_release_date requires `to_date` here when called
      # by app via page load but not anywhere else, like tests - why?!
      def clar_fee_type_only_rule
        @clar_fee_type_only_rule ||=
          [
            'claim.earliest_representation_order_date',
            :minimum,
            Settings.clar_release_date.to_date.beginning_of_day,
            { message: 'fee_scheme_applicability',
              attribute_for_error: :fee_type,
              allow_nil: true }
          ]
      end
    end
  end
end