Sha256: e6b54aba17426f5511aec71a6d5f5429c7ef65f9b61bccb1998d9b6dd1566ce2

Contents?: true

Size: 1.36 KB

Versions: 20

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module EacRailsUtils
  module Rspec
    module Setup
      module ModelsUtils
        def model_record_attribute_test(record_variable, attribute, valid, value)
          context("when #{record_variable}.#{attribute} == #{value}") do
            before do
              send(record_variable).send("#{attribute}=", value)
            end

            it "#{record_variable} should be #{valid ? '' : 'not '}valid" do
              expect(send(record_variable).valid?).to(send("be_#{valid ? 'truthy' : 'falsy'}"),
                                                      -> { send(record_variable).errors.messages })
            end
          end
        end

        def model_record_values_attribute_test(record_variable, attribute, valid, values)
          values.each do |value|
            model_record_attribute_test(record_variable, attribute, valid, value)
          end
        end

        def model_record_valid_invalid_values_attribute_test(record_variable, attribute,
                                                             valid_values, invalid_values)
          {
            false => invalid_values,
            true => valid_values
          }.each do |valid, values|
            model_record_values_attribute_test(record_variable, attribute, valid, values)
          end
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
eac_rails_utils-0.25.0 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.24.0 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.23.4 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.23.3 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.23.2 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.23.1 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.23.0 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.22.3 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.22.2 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.22.1 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.22.0 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.21.0 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.20.0 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.19.0 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.18.0 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.17.2 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.17.1 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.17.0 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.16.0 lib/eac_rails_utils/rspec/setup/models_utils.rb
eac_rails_utils-0.15.2 lib/eac_rails_utils/rspec/setup/models_utils.rb