Sha256: 009f060e5094a6b9de5ff4e19c15ed0eb708e7a82b5665519d47305c63056294
Contents?: true
Size: 1.8 KB
Versions: 3
Compression:
Stored size: 1.8 KB
Contents
require 'json-schema' require 'mini_apivore/version' require 'mini_apivore/fragment' require 'mini_apivore/swagger' require 'mini_apivore/swagger_checker' require 'mini_apivore/validation' require 'mini_apivore/http_codes' module MiniApivore SWAGGER_CHECKERS = {} #----- Module globals ----------------- def self.runnable_list; @@runnable_list ||= [] end def self.all_test_ran?; runnable_list.empty? end def self.prepare_untested_errors errors = [] SWAGGER_CHECKERS.each do |cls, chkr| chkr.untested_mappings.each do |path, methods| methods.each do |method, codes| codes.each do |code, _| errors << "#{method} #{path} is untested for response code #{code} in test class #{cls.to_s}" end end end end errors end def self.included(base) base.extend ClassMethods base.include MiniApivore::Validation end #---- class methods ----------- module ClassMethods def init_swagger( swagger_path, schema= '' ) SWAGGER_CHECKERS[self] ||= MiniApivore::SwaggerChecker.instance_for(swagger_path, schema) end def runnable_methods super | ['final_test'] end def test(name, &block ) super( name, &block ).tap{ |sym| MiniApivore.runnable_list << "#{to_s}::#{sym}" } end def swagger_checker; SWAGGER_CHECKERS[self] end end #----- Minitest callback ----------- def teardown super MiniApivore.runnable_list.delete( "#{self.class.to_s}::#{@NAME}" ) end #----- test for untested routes --------- def final_test return unless MiniApivore.all_test_ran? @errors = MiniApivore.prepare_untested_errors assert( @errors.empty?, @errors.join("\n") ) # preventing duplicate execution MiniApivore.runnable_list << "#{self.class.to_s}::#{__method__}_runned" end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mini-apivore-0.1.3 | lib/mini_apivore.rb |
mini-apivore-0.1.2 | lib/mini_apivore.rb |
mini-apivore-0.1.1 | lib/mini_apivore.rb |