require "spec_helper" feature "Bikes" do before(:each) do # create brand and wheel size @bike_brand = BikeBrand.create( brand: "Huffy") @bike_wheel_size = BikeWheelSize.create( description: "MyWheelSize") @user = FactoryGirl.create(:bike_admin) visit new_user_session_path fill_in "user_username", with: @user.username fill_in "user_password", with: @user.password click_button "Sign in" end scenario "User creates a new bike", js: true do visit new_bike_path fill_in "shop_id", with: 1 fill_in "model", with: "Huffle Puffle" fill_in "serial_number", with: "XKCD" find('label.btn.btn-default', text: 'RD').click find('label.btn.btn-default', text: 'Poor').click fill_in "seat_tube_height", with: 52 select @bike_brand.brand, from: "bike_brand_id" select @bike_wheel_size.description, from: "bike_wheel_size_id" click_button "Add Bike" expect(page).to have_text(@bike_brand.brand) end scenario "User submits a bike with errors", js: true do visit new_bike_path click_button "Add Bike" expect(page).to have_text(:all, "is not a number") expect(page).to have_text(:all, "is not a valid brand") expect(page).to have_text(:all, "is too short") expect(page).to have_text(:all, "is not a valid style") expect(page).to have_text(:all, "is not a valid wheel size") expect(page).to have_text(:all, "is not a valid condition") end end