More controller specs (#2561)
* Add render_views in more places * Delegate methods from account to user with allow nil true, so that admin accounts show view renders when missing a user * Use actual account instances in authorize follow controller spec
This commit is contained in:
		
				
					committed by
					
						
						Eugen Rochko
					
				
			
			
				
	
			
			
			
						parent
						
							0e2589867f
						
					
				
				
					commit
					9566893cc9
				
			@@ -74,6 +74,14 @@ class Account < ApplicationRecord
 | 
			
		||||
  scope :alphabetic, -> { order(domain: :asc, username: :asc) }
 | 
			
		||||
  scope :by_domain_accounts, -> { group(:domain).select(:domain, 'COUNT(*) AS accounts_count').order('accounts_count desc') }
 | 
			
		||||
 | 
			
		||||
  delegate :email,
 | 
			
		||||
    :current_sign_in_ip,
 | 
			
		||||
    :current_sign_in_at,
 | 
			
		||||
    :confirmed?,
 | 
			
		||||
    to: :user,
 | 
			
		||||
    prefix: true,
 | 
			
		||||
    allow_nil: true
 | 
			
		||||
 | 
			
		||||
  def follow!(other_account)
 | 
			
		||||
    active_relationships.where(target_account: other_account).first_or_create!(target_account: other_account)
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -16,15 +16,15 @@
 | 
			
		||||
    - if @account.local?
 | 
			
		||||
      %tr
 | 
			
		||||
        %th= t('admin.accounts.email')
 | 
			
		||||
        %td= @account.user.email
 | 
			
		||||
        %td= @account.user_email
 | 
			
		||||
      %tr
 | 
			
		||||
        %th= t('admin.accounts.most_recent_ip')
 | 
			
		||||
        %td= @account.user.current_sign_in_ip
 | 
			
		||||
        %td= @account.user_current_sign_in_ip
 | 
			
		||||
      %tr
 | 
			
		||||
        %th= t('admin.accounts.most_recent_activity')
 | 
			
		||||
        %td
 | 
			
		||||
          - if @account.user.current_sign_in_at
 | 
			
		||||
            = l @account.user.current_sign_in_at
 | 
			
		||||
          - if @account.user_current_sign_in_at
 | 
			
		||||
            = l @account.user_current_sign_in_at
 | 
			
		||||
          - else
 | 
			
		||||
            Never
 | 
			
		||||
    - else
 | 
			
		||||
@@ -78,7 +78,7 @@
 | 
			
		||||
    = link_to t('admin.accounts.silence'), admin_account_silence_path(@account.id), method: :post, class: 'button'
 | 
			
		||||
 | 
			
		||||
  - if @account.local?
 | 
			
		||||
    - unless @account.user.confirmed?
 | 
			
		||||
    - unless @account.user_confirmed?
 | 
			
		||||
      = link_to t('admin.accounts.confirm'), admin_account_confirmation_path(@account.id), method: :post, class: 'button'
 | 
			
		||||
 | 
			
		||||
  - if @account.suspended?
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@ require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe AccountFollowController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  let(:user) { Fabricate(:user) }
 | 
			
		||||
  let(:alice) { Fabricate(:account, username: 'alice') }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@ require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe AccountUnfollowController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  let(:user) { Fabricate(:user) }
 | 
			
		||||
  let(:alice) { Fabricate(:account, username: 'alice') }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
RSpec.describe Admin::AccountsController, type: :controller do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
    sign_in Fabricate(:user, admin: true), scope: :user
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
RSpec.describe Admin::DomainBlocksController, type: :controller do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
    sign_in Fabricate(:user, admin: true), scope: :user
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
RSpec.describe Admin::InstancesController, type: :controller do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
    sign_in Fabricate(:user, admin: true), scope: :user
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
RSpec.describe Admin::PubsubhubbubController, type: :controller do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  describe 'GET #index' do
 | 
			
		||||
    before do
 | 
			
		||||
      sign_in Fabricate(:user, admin: true), scope: :user
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe Admin::ReportedStatusesController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  let(:user) { Fabricate(:user, admin: true) }
 | 
			
		||||
  before do
 | 
			
		||||
    sign_in user, scope: :user
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe Admin::ResetsController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  let(:account) { Fabricate(:account, user: Fabricate(:user)) }
 | 
			
		||||
  before do
 | 
			
		||||
    sign_in Fabricate(:user, admin: true), scope: :user
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe Admin::SilencesController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  let(:account) { Fabricate(:account) }
 | 
			
		||||
  before do
 | 
			
		||||
    sign_in Fabricate(:user, admin: true), scope: :user
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe Admin::SuspensionsController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  let(:account) { Fabricate(:account) }
 | 
			
		||||
  before do
 | 
			
		||||
    sign_in Fabricate(:user, admin: true), scope: :user
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe AuthorizeFollowsController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  describe 'GET #show' do
 | 
			
		||||
    describe 'when signed out' do
 | 
			
		||||
      it 'redirects to sign in page' do
 | 
			
		||||
@@ -38,7 +40,7 @@ describe AuthorizeFollowsController do
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      it 'sets account from url' do
 | 
			
		||||
        account = double
 | 
			
		||||
        account = Account.new
 | 
			
		||||
        service = double
 | 
			
		||||
        allow(FetchRemoteAccountService).to receive(:new).and_return(service)
 | 
			
		||||
        allow(service).to receive(:call).with('http://example.com').and_return(account)
 | 
			
		||||
@@ -50,7 +52,7 @@ describe AuthorizeFollowsController do
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      it 'sets account from acct uri' do
 | 
			
		||||
        account = double
 | 
			
		||||
        account = Account.new
 | 
			
		||||
        service = double
 | 
			
		||||
        allow(FollowRemoteAccountService).to receive(:new).and_return(service)
 | 
			
		||||
        allow(service).to receive(:call).with('found@hostname').and_return(account)
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@ require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe FollowerAccountsController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  let(:alice) { Fabricate(:account, username: 'alice') }
 | 
			
		||||
 | 
			
		||||
  describe 'GET #index' do
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@ require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe FollowingAccountsController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  let(:alice) { Fabricate(:account, username: 'alice') }
 | 
			
		||||
 | 
			
		||||
  describe 'GET #index' do
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe MediaController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  describe '#show' do
 | 
			
		||||
    it 'redirects to the file url when attached to a status' do
 | 
			
		||||
      status = Fabricate(:status)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
RSpec.describe Oauth::AuthorizationsController, type: :controller do
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe Settings::Exports::BlockedAccountsController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
    sign_in Fabricate(:user), scope: :user
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe Settings::Exports::FollowingAccountsController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
    sign_in Fabricate(:user), scope: :user
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe Settings::Exports::MutedAccountsController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
    sign_in Fabricate(:user), scope: :user
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe Settings::FollowerDomainsController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  let(:user) { Fabricate(:user) }
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
RSpec.describe Settings::ImportsController, type: :controller do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
    sign_in Fabricate(:user), scope: :user
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
describe Settings::PreferencesController do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  let(:user) { Fabricate(:user) }
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
require 'rails_helper'
 | 
			
		||||
 | 
			
		||||
RSpec.describe Settings::ProfilesController, type: :controller do
 | 
			
		||||
  render_views
 | 
			
		||||
 | 
			
		||||
  before do
 | 
			
		||||
    sign_in Fabricate(:user), scope: :user
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user