* 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
54 lines
1.5 KiB
Ruby
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
|