Sha256: 4b71aa5534c8508ba29c8c244dc322de3e4a97cd83a69c44ea658778a7cae5b5

Contents?: true

Size: 966 Bytes

Versions: 65

Compression:

Stored size: 966 Bytes

Contents

module KnapsackPro
  module TestCaseMergers
    class RSpecMerger < BaseMerger
      def call
        merged_test_files_hash = {}
        test_files.each do |test_file|
          test_file_path = extract_test_file_path(test_file.fetch('path'))

          # must be float (default type for time execution from API)
          merged_test_files_hash[test_file_path] ||= 0.0
          merged_test_files_hash[test_file_path] += test_file.fetch('time_execution')
        end

        merged_test_files = []
        merged_test_files_hash.each do |path, time_execution|
          merged_test_files << {
            'path' => path,
            'time_execution' => time_execution
          }
        end
        merged_test_files
      end

      private

      # path - can be:
      # test file path: spec/a_spec.rb
      # or test example path: spec/a_spec.rb[1:1]
      def extract_test_file_path(path)
        path.gsub(/\.rb\[.+\]$/, '.rb')
      end
    end
  end
end

Version data entries

65 entries across 65 versions & 1 rubygems

Version Path
knapsack_pro-5.5.0 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.4.1 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.4.0 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.3.5 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.3.4 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.3.3 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.3.2 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.3.1 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.3.0 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.2.1 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.2.0 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.1.2 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.1.1 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.1.0 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-5.0.0 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-4.1.0 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-4.0.0 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-3.11.0 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-3.10.0 lib/knapsack_pro/test_case_mergers/rspec_merger.rb
knapsack_pro-3.9.0 lib/knapsack_pro/test_case_mergers/rspec_merger.rb