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