103 lines
3.3 KiB
Ruby
103 lines
3.3 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe "Gear Wizard", :js => true, :type => :feature, :capybara_feature => true do
|
|
|
|
subject { page }
|
|
|
|
before(:each) do
|
|
skip "Legacy gear wizard/account-audio selectors are not stable in current cuprite harness"
|
|
end
|
|
|
|
let(:user) { FactoryBot.create(:user) }
|
|
|
|
before(:each) do
|
|
emulate_client
|
|
LatencyTester.delete_all
|
|
end
|
|
|
|
before(:all) do
|
|
@old_video_available=Rails.application.config.video_available
|
|
end
|
|
|
|
after(:all) do
|
|
Rails.application.config.video_available=@old_video_available
|
|
end
|
|
|
|
def walk_wizard(has_video=false)
|
|
FactoryBot.create(:latency_tester)
|
|
fast_signin user, '/client#/account/audio'
|
|
find("div.account-audio a[data-purpose='add-profile']").trigger(:click)
|
|
|
|
# step 1 - intro
|
|
find('.btn-next').trigger(:click)
|
|
|
|
# step 2 - select gear
|
|
find('.ftue-step-title', text: 'Select & Test Audio Gear')
|
|
should_not have_selector('.resync-status') # when you enter this step,
|
|
jk_select('Built-in', 'div[layout-wizard-step="1"] select.select-audio-input-device')
|
|
find('.btn-next.button-orange:not(.disabled)').trigger(:click)
|
|
|
|
# step 3 - configure tracks
|
|
find('.ftue-step-title', text: 'Configure Tracks')
|
|
|
|
# drag one input over to tracks area http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Element#drag_to-instance_method
|
|
input = first('.ftue-input')
|
|
track_slot = first('.track-target')
|
|
input.drag_to(track_slot)
|
|
|
|
find('.btn-next.button-orange:not(.disabled)').trigger(:click)
|
|
|
|
# step 4 - configure voice chat
|
|
find('.ftue-step-title', text: 'Configure Voice Chat')
|
|
find('.btn-next.button-orange:not(.disabled)').trigger(:click)
|
|
|
|
# step 5 - configure direct monitoring
|
|
find('.ftue-step-title', text: 'Turn Off Direct Monitoring')
|
|
|
|
# make a diversion into the 'adjust gear speed' dialog
|
|
find('.adjust-settings-direct-monitor').trigger(:click)
|
|
# should see dialog header
|
|
find('h1', text: 'Adjust Gear Speed')
|
|
# change to 'moderate' speed
|
|
find('.speed-option.setting-fair ins').trigger(:click)
|
|
# should cause a spinner/io test, and then save button comes up as clickable
|
|
find('.btnSave.button-orange:not(.disabled)').trigger(:click)
|
|
|
|
find('.btn-next.button-orange:not(.disabled)').trigger(:click)
|
|
|
|
# Optional step 6 - configure video
|
|
if(has_video)
|
|
#find('.ftue-step-title', text: 'Select Video Gear')
|
|
find('.btn-next.button-orange:not(.disabled)').trigger(:click)
|
|
end
|
|
|
|
# step 6 - Test Router & Network
|
|
find('.ftue-step-title', text: 'Test Router & Network')
|
|
find('.button-orange.start-network-test').trigger(:click)
|
|
find('.user-btn', text: 'RUN NETWORK TEST ANYWAY').trigger(:click)
|
|
find('.button-orange.start-network-test')
|
|
find('.btn-next.button-orange:not(.disabled)').trigger(:click)
|
|
|
|
# step 7 - Success
|
|
find('.ftue-step-title', text: 'Success!')
|
|
find('.btn-close.button-orange').trigger(:click)
|
|
|
|
# should see prompt afterwards about joining a test session
|
|
find('h1', text: 'join test session')
|
|
find('.join-test-session').trigger(:click)
|
|
|
|
# and should now be in session
|
|
find('h2', text: 'my live tracks')
|
|
end
|
|
|
|
it "success path" do
|
|
Rails.application.config.video_available="none"
|
|
walk_wizard(false)
|
|
end
|
|
|
|
it "success path with video" do
|
|
Rails.application.config.video_available="mvp"
|
|
walk_wizard(true)
|
|
end
|
|
end
|