jam-cloud/web/spec/features/gear_wizard_spec.rb

100 lines
3.2 KiB
Ruby

require 'spec_helper'
describe "Gear Wizard", :js => true, :type => :feature, :capybara_feature => true do
subject { page }
let(:user) { FactoryGirl.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)
FactoryGirl.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