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

View File

@@ -0,0 +1,107 @@
# frozen_string_literal: true
require_relative '../spec_helper'
RSpec.describe 'Settings', :smoke do
before(:all) do
# Boot simulator
@udid = UITest::Simulator.boot(UITest::Config.device)
# Build app (unless skipped)
UITest::App.build(
device: UITest::Config.device,
skip: UITest::Config.skip_build?
)
# Install and launch
UITest::App.install(udid: @udid)
UITest::App.launch(udid: @udid)
# Wait for app to stabilize
sleep UITest::Config.app_launch_wait
# Initialize AXe
@axe = UITest::Axe.new(@udid)
end
after(:all) do
# Terminate app
UITest::App.terminate(udid: @udid, silent: true) if @udid
# Shutdown simulator unless --keep-simulator
UITest::Simulator.shutdown(@udid) if @udid && !UITest::Config.keep_simulator?
end
describe 'opening Settings from Library' do
before(:all) do
# Ensure we're on Library tab first (check for text since inlineLarge title has no AXUniqueId)
expect(@axe).to have_text('Library')
# Tap Settings button using accessibility identifier
@axe.tap_id('library.settingsButton')
sleep 1
end
after(:all) do
# Close Settings to return to Library
begin
@axe.tap_label('Done')
rescue StandardError
nil
end
sleep 0.5
end
it 'opens the Settings view' do
expect(@axe).to have_element('settings.view')
end
it 'displays the Settings title' do
expect(@axe).to have_text('Settings')
end
it 'displays the Done button' do
expect(@axe).to have_element('settings.doneButton')
end
it 'displays the Sources section' do
expect(@axe).to have_text('Sources')
end
it 'displays the Playback section' do
expect(@axe).to have_text('Playback')
end
it 'displays the Appearance section' do
expect(@axe).to have_text('Appearance')
end
it 'matches the baseline screenshot', :visual do
screenshot = @axe.screenshot('settings-main')
expect(screenshot).to match_baseline
end
end
describe 'closing Settings' do
before(:all) do
# Open settings if not already open
unless @axe.element_exists?('settings.view')
@axe.tap_id('library.settingsButton')
sleep 1
end
end
it 'closes Settings when tapping Done' do
# Verify we're in Settings
expect(@axe).to have_element('settings.view')
# Tap Done
@axe.tap_label('Done')
sleep 0.5
# Verify we're back on Library (check for text since inlineLarge title has no AXUniqueId)
expect(@axe).to have_text('Library')
expect(@axe).not_to have_element('settings.view')
end
end
end