Sha256: f381ff40e6c0908238553d732ff07b04d37e72667ef63762022471d00ca5b818
Contents?: true
Size: 1.92 KB
Versions: 1
Compression:
Stored size: 1.92 KB
Contents
module RSpecScreenshotDashboard class Manager include Singleton def start @started = true @screenshots = [] @sequence_number = 0 FileUtils.mkdir_p File.join(Config.output_dir, 'screenshots') end def started? @started end def rspec_click_hook(page, argument, rspec_example, &block) return unless RSpecScreenshotDashboard::Config.enabled if rspec_example && (rspec_example.metadata[:js] || rspec_example.metadata[:screenshot]) filename = add_image_from_rspec(argument, rspec_example, page.current_path) page.save_screenshot(Rails.root.join(filename).to_s, full: true) yield page.save_screenshot(Rails.root.join(filename.to_s.sub('.png', '_after.png')).to_s, full: true) end end def add_image_from_rspec(argument, example, url_path) blob = caller.find { |i| i[example.file_path.gsub(/:\d*|^\./, "")] } file_with_line = blob.split(":")[0, 2].join(":") describe = example.metadata[:example_group][:description_args] screenshot = Screenshot.new(url: url_path, argument: argument, backtrace: caller.take(10), sequence_number: @sequence_number += 1, group_description: describe, example_description: example.description, file_with_line: file_with_line) @screenshots << screenshot screenshot.full_image_path end def stop File.write File.join(Config.output_dir, 'index.json'), @screenshots.to_json dist_files = Dir[File.join(File.dirname(__FILE__), '../../dashboard/dist/*')] FileUtils.cp_r(dist_files, Config.output_dir) warn "[RspecScreenshotDashboard] Overview generated with #{@screenshots.count} Screenshots to #{Config.output_dir}" @started = false end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rspec_screenshot_dashboard-0.1.0.beta | lib/rspec_screenshot_dashboard/manager.rb |