Sha256: 417b5f50186e512e4095516d2722b18b150e53c91d22bf943dd5f58d6ed681fd

Contents?: true

Size: 1.1 KB

Versions: 23

Compression:

Stored size: 1.1 KB

Contents

require 'pathway/rspec/matchers/form_schema_helpers'

RSpec::Matchers.define :accept_optional_fields do |*fields|
  match do |form|
    @form, @fields = form, fields

    not_defined.empty? && not_optional.empty?
  end

  match_when_negated do |form|
    @form, @fields = form, fields

    not_defined.empty? && optional.empty?
  end

  description do
    "accept #{field_list} as optional #{pluralize_fields}"
  end

  failure_message do
    "Expected to accept #{field_list} as optional #{pluralize_fields} but " +
      [not_optional_list, not_defined_list].compact.join("; and ")
  end

  failure_message_when_negated do
    "Did not expect to accept #{field_list} as optional #{pluralize_fields} but " +
      [optional_list, not_defined_list].compact.join("; and ")
  end

  include Pathway::Rspec::FormSchemaHelpers

  def optional_list
    "#{as_list(optional)} #{were_was(optional)} optional" if optional.any?
  end

  def not_optional_list
    "#{as_list(not_required)} #{were_was(not_required)} not optional" if not_optional.any?
  end
end

RSpec::Matchers.alias_matcher :accept_optional_field, :accept_optional_fields

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
pathway-0.10.0 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.9.1 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.9.0 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.8.0 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.7.0 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.6.2 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.6.1 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.6.0 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.5.1 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.5.0 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.4.0 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.0.20 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.0.19 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.0.18 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.0.17 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.0.16 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.0.15 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.0.14 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.0.13 lib/pathway/rspec/matchers/accept_optional_fields.rb
pathway-0.0.12 lib/pathway/rspec/matchers/accept_optional_fields.rb