class Minitest::Checks::Models
Public Class Methods
call_class_methods(methods)
click to toggle source
call class methods; don’t check result
# File lib/mimoco.rb, line 71 def self.call_class_methods(methods) methods.each { |meth| check_no_nil @klass.send(meth), "<#{meth}> should return no nil" } end
call_public_methods(methods)
click to toggle source
call_public_methods
; don’t check result
# File lib/mimoco.rb, line 85 def self.call_public_methods(methods) klass_params = @klass_hash[:valid] || @klass_hash[:valids]&.first raise ValidMissingError unless klass_params methods.each { |meth| row, _msg = @klass.create(klass_params) check_no_nil row.send(meth), "<#{meth}> should return no nil" } end
class_methods(expected)
click to toggle source
# File lib/mimoco.rb, line 60 def self.class_methods(expected) cls = @klass.methods(false).sort cls.delete_if { |x| /^_/ =~ x } cls.delete_if { |x| /^(after|before|find_by)_/ =~ x } cls -= %i[column_headers attribute_type_decorations attributes_to_define_after_schema_loads default_scope_override defined_enums] check_equal expected, cls end
create_model(params)
click to toggle source
# File lib/mimoco.rb, line 105 def self.create_model(params) row = @klass.create(params) [row, "#{@klass}: #{params}"] end
invalid(params)
click to toggle source
# File lib/mimoco.rb, line 52 def self.invalid(params) invalids([params]) end
invalids(arr)
click to toggle source
# File lib/mimoco.rb, line 56 def self.invalids(arr) arr.each { |params| one_invalid(params) } end
one_invalid(params)
click to toggle source
# File lib/mimoco.rb, line 100 def self.one_invalid(params) row, msg = create_model(params) @minitest.refute row.valid?, "#{msg} expected to be invalid" end
one_valid(params)
click to toggle source
# File lib/mimoco.rb, line 95 def self.one_valid(params) row, msg = create_model(params) @minitest.assert row.valid?, "#{msg} #{row.errors.full_messages}" end
public_methods(expected)
click to toggle source
# File lib/mimoco.rb, line 77 def self.public_methods(expected) cls = @klass.public_instance_methods(false).sort cls -= %i[autosave_associated_records_for_projects validate_associated_records_for_projects] check_equal expected, cls end
valid(params)
click to toggle source
# File lib/mimoco.rb, line 44 def self.valid(params) valids([params]) end
valids(arr)
click to toggle source
# File lib/mimoco.rb, line 48 def self.valids(arr) arr.each { |params| one_valid(params) } end