Yattee v2 rewrite

This commit is contained in:
Arkadiusz Fal
2026-02-08 18:31:16 +01:00
parent 20d0cfc0c7
commit 05f921d605
1043 changed files with 163875 additions and 68430 deletions

74
spec/ui/spec_helper.rb Normal file
View 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