master
 1require "rails_helper"
 2
 3feature "Profiles", type: :feature do
 4  include_context "stronglifts_program"
 5  let(:user) { create(:user) }
 6  let(:user_session) { create(:active_session, user: user) }
 7
 8  before :each do
 9    page.set_rack_session(user_id: user_session.id)
10  end
11
12  context "when the user has not completed any routines" do
13    subject { ProfilePage.new(user) }
14
15    before { subject.visit_page }
16
17    it "displays the users username" do
18      expect(page).to have_content(user.username)
19    end
20
21    it "displays the number of routines completed" do
22      translations = I18n.translate("profiles.show.no_workouts_completed")
23      expect(page).to have_content(translations)
24    end
25  end
26
27  context "editing my profile" do
28    subject { EditProfilePage.new(user) }
29
30    before { subject.visit_page }
31
32    it "allows me to edit my profile" do
33      subject.change(gender: :male, social_tolerance: :low)
34      subject.save_changes
35
36      expect(page).to have_content(user.username)
37      expect(page).to have_content(
38        I18n.translate("profiles.edit.profile_update_success")
39      )
40    end
41
42    xit "allows me to choose my home gym", js: true do
43      gym = build(:gym)
44      allow(Gym).to receive(:create_from_yelp!).and_return(gym)
45
46      VCR.use_cassette("home_gym") do
47        subject.click_button(I18n.t("profiles.edit.choose_home_gym"))
48        subject.choose_home_gym(city: "calgary", name: "sait")
49        subject.save_changes
50
51        expect(page).to have_content(gym.name)
52      end
53    end
54  end
55end