class Opal::Test::Unit::TestCase

Public Class Methods

inherited(subclass) click to toggle source
# File lib/opal/test/unit/test_case.rb, line 7
def self.inherited(subclass)
  (@test_cases ||= []) << subclass
  subclass.define_singleton_method(:test) do |desc, &block|
    TestCase.register_test subclass, OpenStruct.new({ desc: desc, block: block })
  end

  subclass.define_singleton_method(:setup) do |&block|
    TestCase.register_setup subclass, OpenStruct.new({ block: block })
  end
end
register_setup(subclass, setup) click to toggle source
# File lib/opal/test/unit/test_case.rb, line 22
def self.register_setup(subclass, setup)
  ((@setups ||= {})[subclass] ||= []) << setup
end
register_test(subclass, test) click to toggle source
# File lib/opal/test/unit/test_case.rb, line 18
def self.register_test(subclass, test)
  ((@tests ||= {})[subclass] ||= []) << test
end
run() click to toggle source
# File lib/opal/test/unit/test_case.rb, line 32
def self.run
  success_count = 0
  failure_messages = []
  errors = []
  @test_cases&.each do |test_case|
    instance = test_case.new

    @tests[test_case]&.each do |test|
      begin
        if @setups&.has_key?(test_case)
          self.setup(@setups[test_case])
        end

        print("\e[32m")
        instance.instance_eval(&test.block)
        print "."
        success_count += 1
      rescue AssertFailed => e
        print "\e[31mF\e[32m"
        failure_messages << OpenStruct.new({ desc: test.desc, error: e })
      rescue Exception => e
        print "\e[31mE\e[32m"
        errors << OpenStruct.new({ desc: test.desc, error: e })
      end
      print( "\e[37m")
    end
  end
  puts
  OpenStruct.new(success_count: success_count, failure_messages: failure_messages, errors: errors)
end
setup(setups) click to toggle source
# File lib/opal/test/unit/test_case.rb, line 26
def self.setup(setups)
  setups.each do |setup|
    setup.block.call
  end
end