module Differ
Constants
- EXPECTED_CONTENT
Public Class Methods
contains_passed_and_failed_jsons?(tables_dir)
click to toggle source
# File lib/rspec/flaky/differ.rb, line 54 def contains_passed_and_failed_jsons? tables_dir actual_content = tables_dir.children.map(&:basename).map(&:to_s) EXPECTED_CONTENT & actual_content == EXPECTED_CONTENT end
create_summary_folder()
click to toggle source
# File lib/rspec/flaky/differ.rb, line 27 def create_summary_folder FileUtils.mkdir_p(Pathes.summary_path) end
get_diffs(tables_dir)
click to toggle source
# File lib/rspec/flaky/differ.rb, line 31 def get_diffs tables_dir return 'no_content' unless contains_passed_and_failed_jsons? tables_dir result = [] jsons = tables_dir.children.select { |child| EXPECTED_CONTENT.include? child.basename.to_s } jsons = read_jsons(jsons) return 'empty_table' if jsons.values.all? &:empty? jsons.values.map(&:length).max.times do |idx| passed_record = jsons["passed"].try(:[], idx) || {} failed_record = jsons["failed"].try(:[], idx) || {} result << Hashdiff.diff(passed_record, failed_record) end result end
get_result()
click to toggle source
# File lib/rspec/flaky/differ.rb, line 9 def get_result create_summary_folder @diffs = [] Pathes.summary_path.children.each do |example_dir| next unless example_dir.directory? next unless example_dir.basename.to_s.start_with?(".:") example_dir.children.select do |tables_dir| next unless tables_dir.directory? @diffs << { location: Pathes.relative_path(example_dir), table: tables_dir.basename.to_s, result: get_diffs(tables_dir) } end end Drawer.draw @diffs end
read_jsons(pathes)
click to toggle source
# File lib/rspec/flaky/differ.rb, line 46 def read_jsons pathes {}.tap do |hash| pathes.each do |path| hash[path.basename.to_s.split('.')[0]] = JSON.parse(File.read(Pathes.base_path.join(path))) end end end