Module: Resteze::Testing::RSpec::Object
- Extended by:
- RSpec::Matchers
- Defined in:
- lib/resteze/testing/rspec/object.rb
Instance Method Summary collapse
- #assert_property_default(name, default) ⇒ Object
-
#assert_property_required(name, required: true) ⇒ Object
rubocop:enable Metrics/AbcSize.
-
#assert_property_transformed(name, transformed: true) ⇒ Object
rubocop:enable Naming/PredicatePrefix.
- #assert_property_translation(name, from) ⇒ Object
-
#has_property(name, **options) ⇒ Object
rubocop:disable Metrics/AbcSize rubocop:disable Naming/PredicatePrefix.
Instance Method Details
#assert_property_default(name, default) ⇒ Object
43 44 45 |
# File 'lib/resteze/testing/rspec/object.rb', line 43 def assert_property_default(name, default) expect(subject.defaults[name.to_sym]).to eq(default), "Expected #{subject} to have default for property #{name}" end |
#assert_property_required(name, required: true) ⇒ Object
rubocop:enable Metrics/AbcSize
30 31 32 33 34 35 36 |
# File 'lib/resteze/testing/rspec/object.rb', line 30 def assert_property_required(name, required: true) if required expect(subject.required?(name.to_sym)).to be(true), "Expected #{subject} to require property: #{name}" else expect(subject.required?(name.to_sym)).to be(false), "Expected #{subject} not to require property: #{name}" end end |
#assert_property_transformed(name, transformed: true) ⇒ Object
rubocop:enable Naming/PredicatePrefix
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/resteze/testing/rspec/object.rb', line 18 def assert_property_transformed(name, transformed: true) translation = subject.translations_hash.dig(subject.translations.key(name.to_sym), name.to_sym) transformation_defined = translation.is_a?(Proc) || subject.transformation_exists?(name.to_sym) if transformed expect(transformation_defined).to be(true), "Expected #{subject} to transform property: #{name}" else expect(transformation_defined).to be(false), "Expected #{subject} not to transform property: #{name}" end end |
#assert_property_translation(name, from) ⇒ Object
38 39 40 41 |
# File 'lib/resteze/testing/rspec/object.rb', line 38 def assert_property_translation(name, from) expect(subject.translations.key(name.to_sym)).to eq(from.to_sym), "Expected #{subject} to map property #{name} from #{from}" end |
#has_property(name, **options) ⇒ Object
rubocop:disable Metrics/AbcSize rubocop:disable Naming/PredicatePrefix
9 10 11 12 13 14 15 |
# File 'lib/resteze/testing/rspec/object.rb', line 9 def has_property(name, **) expect(subject.property?(name.to_sym)).to be(true), "Expected #{subject} to have property: #{name}" assert_property_default(name, [:default]) if .key?(:default) assert_property_translation(name, [:from]) if .key?(:from) assert_property_transformed(name, transformed: [:transformed]) if .key?(:transformed) assert_property_required(name, required: [:required]) if .key?(:required) end |