require 'spec_helper'

describe 'Customer edit a review' do
  it 'should fail with emtpy text' do
    customer = create :customer
    fixxpert = create :fixxpert
    subtrade = create :subtrade
    review = create :review, user: customer, for_user: fixxpert, subtrade: subtrade

    login_as_user customer
    click_link 'Fixxpert'
    click_link 'Find a fixxpert'
    click_link "show_fixxpert_#{fixxpert.id}"
    click_link "edit_review_#{review.id}"

    fill_in 'review_text', with: ''
    click_button 'submit'

    page.should have_content "Text can't be blank"

  end

  it 'should edit a review with valid text' do
    customer = create :customer
    fixxpert = create :fixxpert
    subtrade = create :subtrade
    review = create :review, user: customer, for_user: fixxpert, subtrade: subtrade

    login_as_user customer
    click_link 'Fixxpert'
    click_link 'Find a fixxpert'
    click_link "show_fixxpert_#{fixxpert.id}"
    click_link "edit_review_#{review.id}"

    fill_in 'review_text', with: 'Edited Review'
    click_button 'submit'

    page.should have_content 'Review updated'
    within '#customer_review' do
      page.should have_content 'Edited Review'
    end
  end

  it 'should edit a review with valid text and update the fixxpert level' do
    customer = create :customer
    fixxpert = create :fixxpert
    fixxpert.billed_length = 1500
    subtrade = create :subtrade
    review = create :review, user: customer, for_user: fixxpert, subtrade: subtrade

    login_as_user customer
    click_link 'Fixxpert'
    click_link 'Find a fixxpert'
    click_link "show_fixxpert_#{fixxpert.id}"
    click_link "edit_review_#{review.id}"

    fill_in 'review_text', with: 'Edited Review'
    click_button 'submit'

    page.should have_content 'Review updated'
    within '#customer_review' do
      page.should have_content 'Edited Review'
    end

    fixxpert.reload

    expect {fixxpert.level.should eq 3}
  end

end
