Merge branch 'master' into glitch-soc/merge-upstream
Conflicts: app/models/user.rb Resolved by adding :default_language to user settings fields
This commit is contained in:
@ -3,6 +3,8 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe Auth::ConfirmationsController, type: :controller do
|
||||
render_views
|
||||
|
||||
describe 'GET #new' do
|
||||
it 'returns http success' do
|
||||
@request.env['devise.mapping'] = Devise.mappings[:user]
|
||||
@ -48,4 +50,45 @@ describe Auth::ConfirmationsController, type: :controller do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'GET #finish_signup' do
|
||||
subject { get :finish_signup }
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
before do
|
||||
sign_in user, scope: :user
|
||||
@request.env['devise.mapping'] = Devise.mappings[:user]
|
||||
end
|
||||
|
||||
it 'renders finish_signup' do
|
||||
is_expected.to render_template :finish_signup
|
||||
expect(assigns(:user)).to have_attributes id: user.id
|
||||
end
|
||||
end
|
||||
|
||||
describe 'PATCH #finish_signup' do
|
||||
subject { patch :finish_signup, params: { user: { email: email }} }
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
before do
|
||||
sign_in user, scope: :user
|
||||
@request.env['devise.mapping'] = Devise.mappings[:user]
|
||||
end
|
||||
|
||||
context 'when email is valid' do
|
||||
let(:email) { 'new_' + user.email }
|
||||
|
||||
it 'redirects to root_path' do
|
||||
is_expected.to redirect_to root_path
|
||||
end
|
||||
end
|
||||
|
||||
context 'when email is invalid' do
|
||||
let(:email) { '' }
|
||||
|
||||
it 'renders finish_signup' do
|
||||
is_expected.to render_template :finish_signup
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -18,12 +18,12 @@ describe Settings::PreferencesController do
|
||||
|
||||
describe 'PUT #update' do
|
||||
it 'updates the user record' do
|
||||
put :update, params: { user: { locale: 'en', filtered_languages: ['es', 'fr', ''] } }
|
||||
put :update, params: { user: { locale: 'en', chosen_languages: ['es', 'fr', ''] } }
|
||||
|
||||
expect(response).to redirect_to(settings_preferences_path)
|
||||
user.reload
|
||||
expect(user.locale).to eq 'en'
|
||||
expect(user.filtered_languages).to eq ['es', 'fr']
|
||||
expect(user.chosen_languages).to eq ['es', 'fr']
|
||||
end
|
||||
|
||||
it 'updates user settings' do
|
||||
|
22
spec/controllers/shares_controller_spec.rb
Normal file
22
spec/controllers/shares_controller_spec.rb
Normal file
@ -0,0 +1,22 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe SharesController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
before { sign_in user }
|
||||
|
||||
describe 'GTE #show' do
|
||||
subject(:initial_state_json) { JSON.parse(assigns(:initial_state_json), symbolize_names: true) }
|
||||
subject(:body_classes) { assigns(:body_classes) }
|
||||
|
||||
before { get :show, params: { title: 'test title', text: 'test text', url: 'url1 url2' } }
|
||||
|
||||
it 'assigns json' do
|
||||
expect(response).to have_http_status :ok
|
||||
expect(initial_state_json[:compose][:text]).to eq 'test title test text url1 url2'
|
||||
expect(initial_state_json[:meta][:me]).to eq user.account.id.to_s
|
||||
expect(body_classes).to eq 'modal-layout compose-standalone'
|
||||
end
|
||||
end
|
||||
end
|
@ -296,18 +296,18 @@ RSpec.describe Status, type: :model do
|
||||
end
|
||||
end
|
||||
|
||||
describe '.not_in_filtered_languages' do
|
||||
describe '.in_chosen_languages' do
|
||||
context 'for accounts with language filters' do
|
||||
let(:user) { Fabricate(:user, filtered_languages: ['en']) }
|
||||
let(:user) { Fabricate(:user, chosen_languages: ['en']) }
|
||||
|
||||
it 'does not include statuses in filtered languages' do
|
||||
status = Fabricate(:status, language: 'en')
|
||||
expect(Status.not_in_filtered_languages(user.account)).not_to include status
|
||||
it 'does not include statuses in not in chosen languages' do
|
||||
status = Fabricate(:status, language: 'de')
|
||||
expect(Status.in_chosen_languages(user.account)).not_to include status
|
||||
end
|
||||
|
||||
it 'includes status with unknown language' do
|
||||
status = Fabricate(:status, language: nil)
|
||||
expect(Status.not_in_filtered_languages(user.account)).to include status
|
||||
expect(Status.in_chosen_languages(user.account)).to include status
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -555,7 +555,7 @@ RSpec.describe Status, type: :model do
|
||||
|
||||
context 'with language preferences' do
|
||||
it 'excludes statuses in languages not allowed by the account user' do
|
||||
user = Fabricate(:user, filtered_languages: [:fr])
|
||||
user = Fabricate(:user, chosen_languages: [:en, :es])
|
||||
@account.update(user: user)
|
||||
en_status = Fabricate(:status, language: 'en')
|
||||
es_status = Fabricate(:status, language: 'es')
|
||||
@ -568,7 +568,7 @@ RSpec.describe Status, type: :model do
|
||||
end
|
||||
|
||||
it 'includes all languages when user does not have a setting' do
|
||||
user = Fabricate(:user, filtered_languages: [])
|
||||
user = Fabricate(:user, chosen_languages: nil)
|
||||
@account.update(user: user)
|
||||
|
||||
en_status = Fabricate(:status, language: 'en')
|
||||
|
@ -41,9 +41,9 @@ RSpec.describe User, type: :model do
|
||||
end
|
||||
|
||||
it 'cleans out empty string from languages' do
|
||||
user = Fabricate.build(:user, filtered_languages: [''])
|
||||
user = Fabricate.build(:user, chosen_languages: [''])
|
||||
user.valid?
|
||||
expect(user.filtered_languages).to eq []
|
||||
expect(user.chosen_languages).to eq nil
|
||||
end
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user