include Warden::Test::Helpers
Warden.test_mode!

# Feature: User profile page
#   As a user
#   I want to visit my user profile page
#   So I can see my personal account data
feature "User profile page", :devise do

  after :each do
    Warden.test_reset!
  end

  # Scenario: User sees own profile
  #   Given I am signed in
  #   When I visit the user profile page
  #   Then I see my own screen name and follower count
  scenario 'user sees own profile', js: true do
    user = FactoryGirl.create(:user)

    login_as(user, :scope => :user)

    visit show_user_profile_path(user.screen_name)

    expect(page).to have_content user.screen_name
    expect(page).to have_content user.follower_count
  end

  # Scenario: User sees another user's profile
  #   Given I am signed in
  #   When I visit another user's profile
  #   Then I see that user's screen name and follower count
  scenario "user sees another user's profile", js: true do
    me = FactoryGirl.create(:user)
    other = FactoryGirl.create(:user)

    login_as me, scope: :user

    visit show_user_profile_path(other.screen_name)

    expect(page).to have_content other.screen_name
    expect(page).to have_content other.follower_count
  end

  # Scenario: User gets asked a question
  #   Given I am signed in
  #   When I visit another user's profile
  #    And I fill something in the question box
  #    And I click on "Ask"
  #   Then I see "Question asked successfully."
  scenario "user gets asked a question", js: true do
    me = FactoryGirl.create(:user)
    other = FactoryGirl.create(:user)

    login_as me, scope: :user
    visit show_user_profile_path(other.screen_name)
    page.driver.render Rails.root.join("tmp/#{Time.now.to_i}_1.png"), full: true

    fill_in "qb-question", with: Faker::Lorem.sentence
    click_button "Ask"
    wait_for_ajax
    page.driver.render Rails.root.join("tmp/#{Time.now.to_i}_2.png"), full: true

    expect(page).to have_text("Question asked successfully.")
  end
end