module StandardAPI::TestCase::ClassMethods
Public Instance Methods
include_filter_tests()
click to toggle source
# File lib/standard_api/test_case.rb, line 75 def include_filter_tests model.instance_variable_get('@filters').each do |filter| next if filter[1].is_a?(Proc) # Custom filter next if model.reflect_on_association(filter[0]) # TODO: Relation Filter Tests define_method("test_model_filter_#{filter[0]}") do m = create_model value = m.send(filter[0]) assert_predicate = -> (predicate) { get :index, where: predicate, format: 'json' assert_equal model.filter(predicate).to_sql, assigns(plural_name).to_sql } # TODO: Test array case model.columns_hash[filter[0].to_s].type when :jsonb, :json # JSON assert_predicate.call({ filter[0] => value }) else case value when Array assert_predicate.call({ filter[0] => value }) # Overlaps assert_predicate.call({ filter[0] => value[0] }) # Contains else assert_predicate.call({ filter[0] => value }) # Equality assert_predicate.call({ filter[0] => { gt: value } }) # Greater Than assert_predicate.call({ filter[0] => { greater_than: value } }) assert_predicate.call({ filter[0] => { lt: value } }) # Less Than assert_predicate.call({ filter[0] => { less_than: value } }) assert_predicate.call({ filter[0] => { gte: value } }) # Greater Than or Equal To assert_predicate.call({ filter[0] => { gteq: value } }) assert_predicate.call({ filter[0] => { greater_than_or_equal_to: value } }) assert_predicate.call({ filter[0] => { lte: value } }) # Less Than or Equal To assert_predicate.call({ filter[0] => { lteq: value } }) assert_predicate.call({ filter[0] => { less_than_or_equal_to: value } }) end end end end end
model()
click to toggle source
# File lib/standard_api/test_case.rb, line 120 def model return @model if defined?(@model) && @model klass_name = controller_class.name.gsub(/Controller$/, '').singularize begin @model = klass_name.constantize rescue NameError raise e unless e.message =~ /uninitialized constant #{klass_name}/ end if @model.nil? raise "@model is nil: make sure you set it in your test using `self.model = ModelClass`." else @model end end
model=(val)
click to toggle source
# File lib/standard_api/test_case.rb, line 116 def model=(val) @model = val end