docbrown/spec/requests/user_settings_spec.rb
Mac Siri dd5a22dc80 Create UserPolicy (#480)
* Fix lint

* Create User#settings_tab_list

* Remove UsersController#finish_signup

* Remove UsersController#index

* Create UserPolicy WIP

* Replace UsersController's spec with request spec

* Fix broken specs

* Fix broken specs

* Remove comment

* Upgrade UserPolicy

* Fix specs
2018-06-22 20:40:08 -04:00

54 lines
1.5 KiB
Ruby

require "rails_helper"
RSpec.describe "UserSettings", type: :request do
let(:user) { create(:user) }
describe "GET /settings/:tab" do
context "when not signed-in" do
it "returns not_foudn" do
get "/settings"
expect(response).to redirect_to("/enter")
end
end
context "when signed-in" do
before do
login_as user
end
it "renders various settings tabs properly" do
%w[organization switch-organizations billing misc].each do |tab|
get "/settings/#{tab}"
expect(response.body).to include("Settings for")
end
end
it "doesn't let user access membership if user has no monthly_dues" do
get "/settings/membership"
expect(response.body).not_to include("Settings for")
end
it "allows user with monthly_dues to access membership" do
user.update_column(:monthly_dues, 5)
get "/settings/membership"
expect(response.body).to include("Settings for")
end
end
end
describe "PUT /update/:id" do
before do
login_as user
end
it "updates summary" do
put "/users/#{user.id}", params: { user: { tab: "profile", summary: "Hello new summary" } }
expect(user.summary).to eq("Hello new summary")
end
it "updates username to too short username" do
put "/users/#{user.id}", params: { user: { tab: "profile", username: "h" } }
expect(response.body).to include("Username is too short")
end
end
end