Files
yattee/spec/ui/smoke/invidious_spec.rb
Arkadiusz Fal 9cd9506dcf Fix UI tests for onboarding flow and AddRemoteServer redesign
- Skip onboarding in tests by setting UserDefaults before launch
- Update all addSource.* identifiers to addRemoteServer.* for new flow
- Switch from identifier-based to text-based element lookups (iOS 26 AXe limitation)
- Add Yattee Server credential support in instance setup
- Update baseline screenshots for Home tab and settings
2026-02-10 00:05:39 +01:00

72 lines
2.0 KiB
Ruby

# frozen_string_literal: true
require_relative '../spec_helper'
RSpec.describe 'Invidious Instance', :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 and InstanceSetup helper
@axe = UITest::Axe.new(@udid)
@instance_setup = UITest::InstanceSetup.new(@axe)
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 'adding via Detect & Add' do
it 'adds Invidious instance and verifies it appears in Sources' do
invidious_url = UITest::Config.invidious_url
invidious_host = UITest::Config.invidious_host
# Ensure we start from Home
expect(@axe).to have_text('Home')
# Remove existing instance (if any) and add fresh - always tests the add flow
@instance_setup.remove_and_add_invidious(invidious_url)
# Navigate to Sources to verify the instance was added
# Open Settings using accessibility identifier
@axe.tap_id('home.settingsButton')
sleep 1
expect(@axe).to have_element('settings.view')
# Navigate to Sources
@axe.tap_id('settings.row.sources')
sleep 0.5
# Verify instance appears in Sources list (check by host text since
# SwiftUI accessibilityIdentifier doesn't expose as AXUniqueId)
expect(@axe).to have_text(invidious_host)
# Close settings
begin
@axe.tap_id('settings.doneButton')
rescue StandardError
nil
end
sleep 0.5
end
end
end