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

61 lines
1.8 KiB
Ruby

require 'spec_helper'
describe "Bands", :js => true, :type => :feature, :capybara_feature => true do
subject { page }
before(:all) do
Capybara.javascript_driver = :poltergeist
Capybara.current_driver = Capybara.javascript_driver
Capybara.default_wait_time = 15
# MaxMindIsp.delete_all # prove that city/state/country will remain nil if no maxmind data
# MaxMindGeo.delete_all
#MaxMindManager.active_record_transaction do |manager|
# manager.create_phony_database()
#end
end
let(:user) { FactoryGirl.create(:user) }
let(:finder) { FactoryGirl.create(:user) }
before(:each) do
UserMailer.deliveries.clear
navigate_band_setup
end
def navigate_band_setup
sign_in_poltergeist(user)
wait_until_curtain_gone
find('div.homecard.profile').trigger(:click)
find('#profile-bands-link').trigger(:click)
find('#band-setup-link').trigger(:click)
expect(page).to have_selector('#band-setup-title')
end
it "have validation errors shown, but then can navigate past and eventually save" do
find('#btn-band-setup-next').trigger(:click)
find('#tdBandName .error-text li', text: "can't be blank")
find('#tdBandBiography .error-text li', text: "can't be blank")
find('#tdBandGenres .error-text li', text: "At least 1 genre is required.")
within('#band-setup-form') do
fill_in "band-name", with: "The Band"
fill_in "band-biography", with: "Biography"
first('#band-genres input[type="checkbox"]').trigger(:click)
end
sleep 1 # work around race condition
find('#btn-band-setup-next').trigger(:click)
find('h2', text: 'Step 2: Add Band Members')
find('#btn-band-setup-save').trigger(:click)
find('#band-profile-name', text: "The Band")
find('#band-profile-biography', text: "Biography")
end
end