Sha256: fb05b5c077f0b553fdca88fbc3154ddded911d3c6b6917080292e0b4988f8b15

Contents?: true

Size: 1.34 KB

Versions: 90

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true

require 'appmap/service/test_framework_detector'

module AppMap
  module Service
    class IntegrationTestPathFinder
      def initialize(base_path = '')
        @base_path = base_path
      end

      def find
        @paths ||= begin
          paths = { rspec: [], minitest: [], cucumber: [] }
          paths[:rspec] = find_rspec_paths if TestFrameworkDetector.rspec_present?
          paths[:minitest] = find_minitest_paths if TestFrameworkDetector.minitest_present?
          paths[:cucumber] = find_cucumber_paths if TestFrameworkDetector.cucumber_present?
          paths
        end
      end

      def count_paths
        find.flatten(2).length - 3
      end

      private

      def find_rspec_paths
        find_non_empty_paths(%w[spec/controllers spec/requests spec/integration spec/api spec/features spec/system])
      end


      def find_minitest_paths
        top_level_paths = %w[test/controllers test/integration]
        children_paths = Dir.glob('test/**/{controllers,integration}')
        find_non_empty_paths((top_level_paths + children_paths).uniq).sort
      end

      def find_cucumber_paths
        find_non_empty_paths(%w[features])
      end

      def find_non_empty_paths(paths)
        paths.select { |path| Dir.exist?(@base_path + path) && !Dir.empty?(@base_path + path) }
      end
    end
  end
end

Version data entries

90 entries across 90 versions & 1 rubygems

Version Path
appmap-1.1.1 lib/appmap/service/integration_test_path_finder.rb
appmap-1.0.1 lib/appmap/service/integration_test_path_finder.rb
appmap-1.0.0 lib/appmap/service/integration_test_path_finder.rb
appmap-0.103.0 lib/appmap/service/integration_test_path_finder.rb
appmap-0.102.2 lib/appmap/service/integration_test_path_finder.rb
appmap-0.102.1 lib/appmap/service/integration_test_path_finder.rb
appmap-0.102.0 lib/appmap/service/integration_test_path_finder.rb
appmap-0.101.0 lib/appmap/service/integration_test_path_finder.rb
appmap-0.100.0 lib/appmap/service/integration_test_path_finder.rb
appmap-0.99.4 lib/appmap/service/integration_test_path_finder.rb
appmap-0.99.2 lib/appmap/service/integration_test_path_finder.rb
appmap-0.99.1 lib/appmap/service/integration_test_path_finder.rb
appmap-0.99.0 lib/appmap/service/integration_test_path_finder.rb
appmap-0.98.1 lib/appmap/service/integration_test_path_finder.rb
appmap-0.98.0 lib/appmap/service/integration_test_path_finder.rb
appmap-0.97.0 lib/appmap/service/integration_test_path_finder.rb
appmap-0.96.0 lib/appmap/service/integration_test_path_finder.rb
appmap-0.95.2 lib/appmap/service/integration_test_path_finder.rb
appmap-0.95.1 lib/appmap/service/integration_test_path_finder.rb
appmap-0.95.0 lib/appmap/service/integration_test_path_finder.rb