require 'spec_helper'

describe "Reset Password", :js => true, :type => :feature, :capybara_feature => true do

  subject { page }

  before do
    UserMailer.deliveries.clear
    visit request_reset_password_path
  end

  it "shows specific error for empty password" do
    click_button 'RESET'
    find('.login-error-msg', text: 'Please enter an email address')
    UserMailer.deliveries.length.should == 0
  end

  it "shows specific error for invalid email address" do
    fill_in "jam_ruby_user_email",  with: 'snoozeday'
    click_button 'RESET'
    find('.login-error-msg', text: 'Please enter a valid email address')
    UserMailer.deliveries.length.should == 0
  end

  it "acts as if success when email of no one in the service" do
    fill_in "jam_ruby_user_email",  with: 'noone_exists_with_this@blah.com'
    click_button 'RESET'
    find('span.please-check', text: 'Please check your email at noone_exists_with_this@blah.com and click the link in the email to set a new password.')
    UserMailer.deliveries.length.should == 0
  end

  it "acts as if success when email is valid" do
    user = FactoryGirl.create(:user)
    fill_in "jam_ruby_user_email",  with: user.email
    click_button 'RESET'
    find('span.please-check', text: "Please check your email at #{user.email} and click the link in the email to set a new password.")
    UserMailer.deliveries.length.should == 1
  end

  it "acts as if success when email is valid (but with extra whitespace)" do
    user = FactoryGirl.create(:user)
    fill_in "jam_ruby_user_email",  with: user.email + ' '
    click_button 'RESET'
    find('span.please-check', text: "Please check your email at #{user.email} and click the link in the email to set a new password.")
    UserMailer.deliveries.length.should == 1
  end
end
