require 'spec_helper'

describe "Landing", type: :feature  do

  let (:user)  { FactoryGirl.create(:user) }

  before(:all) do
    MusicSession.delete_all
    ClaimedRecording.delete_all
    Recording.delete_all
  end


  let (:claimed_recording) { FactoryGirl.create(:claimed_recording) }
  let (:recording) { claimed_recording.recording }

  describe "no js required" do

    it "shows private recording to someone who was in the session" do
      # make the session hidden
      claimed_recording.is_public = false
      claimed_recording.save!

      visit "/recordings/#{claimed_recording.id}"

      # and verify that after we visit the page, we can see the name of it
      find('strong', text: 'RECORDING NOT FOUND')

      # log in the user who was a part of the session
      sign_in(claimed_recording.user)

      visit "/recordings/#{claimed_recording.id}"

      # and verify that after we visit the page, we can see the name of it
      find('h2', text: claimed_recording.name)
    end
  end


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

    before(:each) do
      MusicSession.delete_all
      sign_in_poltergeist(user)
    end


    it "should render comments" do

      recording = ClaimedRecording.first
      comment = "test comment"
      timestamp = "less than a minute ago"
      url = "/recordings/#{claimed_recording.id}"
      visit url

      fill_in "txtRecordingComment", with: comment
      find('#btnPostComment').trigger(:click)

      # (1) Test a user creating a comment and ensure it displays.

      # comment body
      find('div.comment-text', text: comment)

      # timestamp
      find('div.comment-timestamp', text: timestamp)

      # (2) Test a user visiting a landing page with an existing comment.

      # re-visit page to reload from database
      visit url

      # comment body
      find('div.comment-text', text: comment)

      # timestamp
      find('div.comment-timestamp', text: timestamp)
    end
  end
end