Class: Minitest::Subjective::CaseInquirer

Inherits:
Object
  • Object
show all
Defined in:
lib/minitest/subjective/case_inquirer.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass) ⇒ CaseInquirer

Returns a new instance of CaseInquirer.



8
9
10
11
12
13
# File 'lib/minitest/subjective/case_inquirer.rb', line 8

def initialize(klass)
  @class_name = klass.is_a?(String) ? klass : klass.name
  @klass = klass.is_a?(String) ? safe_constantize(klass) : klass
  load_subject
  @subject_file = Object.const_source_location(subject_name)&.first
end

Instance Attribute Details

#class_nameObject (readonly)

Returns the value of attribute class_name.



6
7
8
# File 'lib/minitest/subjective/case_inquirer.rb', line 6

def class_name
  @class_name
end

#subject_fileObject (readonly)

Returns the value of attribute subject_file.



6
7
8
# File 'lib/minitest/subjective/case_inquirer.rb', line 6

def subject_file
  @subject_file
end

Instance Method Details

#==(other) ⇒ Object



33
# File 'lib/minitest/subjective/case_inquirer.rb', line 33

def ==(other) = class_name == other.class_name && klass == other.klass && subject_file == other.subject_file

#integration_test?Boolean

Returns:

  • (Boolean)


32
# File 'lib/minitest/subjective/case_inquirer.rb', line 32

def integration_test? = rails_test? && defined?(::ActionDispatch) && klass < ActionDispatch::IntegrationTest

#minitest_test?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/minitest/subjective/case_inquirer.rb', line 24

def minitest_test?
  demodulized_class_name.start_with?('Test') && klass < Minitest::Test
end

#rails_test?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/minitest/subjective/case_inquirer.rb', line 28

def rails_test?
  demodulized_class_name.end_with?('Test') && defined?(::ActiveSupport) && klass < ActiveSupport::TestCase
end

#subject_nameObject



15
16
17
18
19
20
# File 'lib/minitest/subjective/case_inquirer.rb', line 15

def subject_name
  return class_name unless test?
  return [class_name_nesting, demodulized_class_name.delete_suffix('Test')].join('::') if rails_test?

  [class_name_nesting, demodulized_class_name.delete_prefix('Test')].join('::')
end

#test?Boolean

Returns:

  • (Boolean)


22
# File 'lib/minitest/subjective/case_inquirer.rb', line 22

def test? = rails_test? || minitest_test?