diff --git a/config/routes.rb b/config/routes.rb index cc638f20855..49402b58b08 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -326,7 +326,7 @@ Discourse::Application.routes.draw do get "users/:username/messages/group/:group_name/archive" => "user_actions#private_messages", constraints: {username: USERNAME_ROUTE_FORMAT, group_name: USERNAME_ROUTE_FORMAT} get "users/:username.json" => "users#show", constraints: {username: USERNAME_ROUTE_FORMAT}, defaults: {format: :json} - get "users/:username" => "users#show", as: 'user', constraints: {username: USERNAME_ROUTE_FORMAT} + get "users/:username" => "users#show", as: 'user', constraints: {username: USERNAME_ROUTE_FORMAT, format: /(json|html)/} put "users/:username" => "users#update", constraints: {username: USERNAME_ROUTE_FORMAT}, defaults: { format: :json } get "users/:username/emails" => "users#check_emails", constraints: {username: USERNAME_ROUTE_FORMAT} get "users/:username/preferences" => "users#preferences", constraints: {username: USERNAME_ROUTE_FORMAT}, as: :email_preferences diff --git a/spec/integration/users_spec.rb b/spec/integration/users_spec.rb index aed127a1a1a..7350c87ca5f 100644 --- a/spec/integration/users_spec.rb +++ b/spec/integration/users_spec.rb @@ -3,6 +3,29 @@ require 'rails_helper' RSpec.describe "Users" do let(:user) { Fabricate(:user) } + describe "viewing a user" do + + it "should be able to view a user" do + get "/users/#{user.username}" + + expect(response).to be_success + expect(response.body).to include(user.username) + end + + describe 'when username contains a period' do + before do + user.update!(username: 'test.test') + end + + it "should be able to view a user" do + get "/users/#{user.username}" + + expect(response).to be_success + expect(response.body).to include(user.username) + end + end + end + describe "updating a user" do before do sign_in(user)