mirror of
https://github.com/yattee/yattee.git
synced 2026-02-20 01:39:46 +00:00
Yattee v2 rewrite
This commit is contained in:
74
spec/ui/spec_helper.rb
Normal file
74
spec/ui/spec_helper.rb
Normal file
@@ -0,0 +1,74 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rspec'
|
||||
require 'fileutils'
|
||||
require 'dotenv'
|
||||
|
||||
# Load environment variables from .env file (if present)
|
||||
Dotenv.load
|
||||
|
||||
# Load support files
|
||||
Dir[File.join(__dir__, 'support', '*.rb')].each { |f| require f }
|
||||
|
||||
# Load shared contexts
|
||||
Dir[File.join(__dir__, 'support', 'shared_contexts', '*.rb')].each { |f| require f }
|
||||
|
||||
# Include custom matchers
|
||||
RSpec.configure do |config|
|
||||
config.include UITest::Matchers
|
||||
|
||||
# Use documentation format for better output
|
||||
config.formatter = :documentation
|
||||
|
||||
# Run tests in random order to surface dependencies
|
||||
config.order = :defined # Use defined order for UI tests (they may have dependencies)
|
||||
|
||||
# Show full backtrace on failure
|
||||
config.full_backtrace = false
|
||||
|
||||
# Filter stack traces to remove gem noise
|
||||
config.filter_gems_from_backtrace 'rspec-core', 'rspec-expectations', 'rspec-mocks', 'rspec-support'
|
||||
|
||||
# Retry configuration for flaky UI tests
|
||||
config.around(:each, :retry) do |example|
|
||||
example.run_with_retry(retry: 2, retry_wait: 1)
|
||||
end
|
||||
|
||||
# Hooks for visual tests
|
||||
config.before(:each, :visual) do
|
||||
UITest::Config.ensure_directories!
|
||||
end
|
||||
|
||||
# Global setup - ensure clean state
|
||||
config.before(:suite) do
|
||||
puts ''
|
||||
puts '=' * 60
|
||||
puts 'Yattee UI Tests'
|
||||
puts '=' * 60
|
||||
puts "Device: #{UITest::Config.device}"
|
||||
puts "Generate baseline: #{UITest::Config.generate_baseline?}"
|
||||
puts "Skip build: #{UITest::Config.skip_build?}"
|
||||
puts "Keep app data: #{UITest::Config.keep_app_data?}"
|
||||
puts '=' * 60
|
||||
puts ''
|
||||
end
|
||||
|
||||
# Global teardown
|
||||
config.after(:suite) do
|
||||
puts ''
|
||||
puts '=' * 60
|
||||
puts 'UI Tests Complete'
|
||||
puts '=' * 60
|
||||
end
|
||||
end
|
||||
|
||||
# RSpec retry gem configuration (if available)
|
||||
begin
|
||||
require 'rspec/retry'
|
||||
RSpec.configure do |config|
|
||||
config.verbose_retry = true
|
||||
config.display_try_failure_messages = true
|
||||
end
|
||||
rescue LoadError
|
||||
# rspec-retry not installed, skip
|
||||
end
|
||||
Reference in New Issue
Block a user