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:
Matt Jankowski 2017-04-28 09:12:37 -04:00 committed by Eugen Rochko
parent 0e2589867f
commit 9566893cc9
24 changed files with 53 additions and 7 deletions

View File

@ -74,6 +74,14 @@ class Account < ApplicationRecord
scope :alphabetic, -> { order(domain: :asc, username: :asc) } scope :alphabetic, -> { order(domain: :asc, username: :asc) }
scope :by_domain_accounts, -> { group(:domain).select(:domain, 'COUNT(*) AS accounts_count').order('accounts_count desc') } 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) def follow!(other_account)
active_relationships.where(target_account: other_account).first_or_create!(target_account: other_account) active_relationships.where(target_account: other_account).first_or_create!(target_account: other_account)
end end

View File

@ -16,15 +16,15 @@
- if @account.local? - if @account.local?
%tr %tr
%th= t('admin.accounts.email') %th= t('admin.accounts.email')
%td= @account.user.email %td= @account.user_email
%tr %tr
%th= t('admin.accounts.most_recent_ip') %th= t('admin.accounts.most_recent_ip')
%td= @account.user.current_sign_in_ip %td= @account.user_current_sign_in_ip
%tr %tr
%th= t('admin.accounts.most_recent_activity') %th= t('admin.accounts.most_recent_activity')
%td %td
- if @account.user.current_sign_in_at - if @account.user_current_sign_in_at
= l @account.user.current_sign_in_at = l @account.user_current_sign_in_at
- else - else
Never Never
- else - else
@ -78,7 +78,7 @@
= link_to t('admin.accounts.silence'), admin_account_silence_path(@account.id), method: :post, class: 'button' = link_to t('admin.accounts.silence'), admin_account_silence_path(@account.id), method: :post, class: 'button'
- if @account.local? - 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' = link_to t('admin.accounts.confirm'), admin_account_confirmation_path(@account.id), method: :post, class: 'button'
- if @account.suspended? - if @account.suspended?

View File

@ -2,6 +2,7 @@ require 'rails_helper'
describe AccountFollowController do describe AccountFollowController do
render_views render_views
let(:user) { Fabricate(:user) } let(:user) { Fabricate(:user) }
let(:alice) { Fabricate(:account, username: 'alice') } let(:alice) { Fabricate(:account, username: 'alice') }

View File

@ -2,6 +2,7 @@ require 'rails_helper'
describe AccountUnfollowController do describe AccountUnfollowController do
render_views render_views
let(:user) { Fabricate(:user) } let(:user) { Fabricate(:user) }
let(:alice) { Fabricate(:account, username: 'alice') } let(:alice) { Fabricate(:account, username: 'alice') }

View File

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Admin::AccountsController, type: :controller do RSpec.describe Admin::AccountsController, type: :controller do
render_views
before do before do
sign_in Fabricate(:user, admin: true), scope: :user sign_in Fabricate(:user, admin: true), scope: :user
end end

View File

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Admin::DomainBlocksController, type: :controller do RSpec.describe Admin::DomainBlocksController, type: :controller do
render_views
before do before do
sign_in Fabricate(:user, admin: true), scope: :user sign_in Fabricate(:user, admin: true), scope: :user
end end

View File

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Admin::InstancesController, type: :controller do RSpec.describe Admin::InstancesController, type: :controller do
render_views
before do before do
sign_in Fabricate(:user, admin: true), scope: :user sign_in Fabricate(:user, admin: true), scope: :user
end end

View File

@ -2,6 +2,8 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Admin::PubsubhubbubController, type: :controller do RSpec.describe Admin::PubsubhubbubController, type: :controller do
render_views
describe 'GET #index' do describe 'GET #index' do
before do before do
sign_in Fabricate(:user, admin: true), scope: :user sign_in Fabricate(:user, admin: true), scope: :user

View File

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
describe Admin::ReportedStatusesController do describe Admin::ReportedStatusesController do
render_views
let(:user) { Fabricate(:user, admin: true) } let(:user) { Fabricate(:user, admin: true) }
before do before do
sign_in user, scope: :user sign_in user, scope: :user

View File

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
describe Admin::ResetsController do describe Admin::ResetsController do
render_views
let(:account) { Fabricate(:account, user: Fabricate(:user)) } let(:account) { Fabricate(:account, user: Fabricate(:user)) }
before do before do
sign_in Fabricate(:user, admin: true), scope: :user sign_in Fabricate(:user, admin: true), scope: :user

View File

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
describe Admin::SilencesController do describe Admin::SilencesController do
render_views
let(:account) { Fabricate(:account) } let(:account) { Fabricate(:account) }
before do before do
sign_in Fabricate(:user, admin: true), scope: :user sign_in Fabricate(:user, admin: true), scope: :user

View File

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
describe Admin::SuspensionsController do describe Admin::SuspensionsController do
render_views
let(:account) { Fabricate(:account) } let(:account) { Fabricate(:account) }
before do before do
sign_in Fabricate(:user, admin: true), scope: :user sign_in Fabricate(:user, admin: true), scope: :user

View File

@ -3,6 +3,8 @@
require 'rails_helper' require 'rails_helper'
describe AuthorizeFollowsController do describe AuthorizeFollowsController do
render_views
describe 'GET #show' do describe 'GET #show' do
describe 'when signed out' do describe 'when signed out' do
it 'redirects to sign in page' do it 'redirects to sign in page' do
@ -38,7 +40,7 @@ describe AuthorizeFollowsController do
end end
it 'sets account from url' do it 'sets account from url' do
account = double account = Account.new
service = double service = double
allow(FetchRemoteAccountService).to receive(:new).and_return(service) allow(FetchRemoteAccountService).to receive(:new).and_return(service)
allow(service).to receive(:call).with('http://example.com').and_return(account) allow(service).to receive(:call).with('http://example.com').and_return(account)
@ -50,7 +52,7 @@ describe AuthorizeFollowsController do
end end
it 'sets account from acct uri' do it 'sets account from acct uri' do
account = double account = Account.new
service = double service = double
allow(FollowRemoteAccountService).to receive(:new).and_return(service) allow(FollowRemoteAccountService).to receive(:new).and_return(service)
allow(service).to receive(:call).with('found@hostname').and_return(account) allow(service).to receive(:call).with('found@hostname').and_return(account)

View File

@ -2,6 +2,7 @@ require 'rails_helper'
describe FollowerAccountsController do describe FollowerAccountsController do
render_views render_views
let(:alice) { Fabricate(:account, username: 'alice') } let(:alice) { Fabricate(:account, username: 'alice') }
describe 'GET #index' do describe 'GET #index' do

View File

@ -2,6 +2,7 @@ require 'rails_helper'
describe FollowingAccountsController do describe FollowingAccountsController do
render_views render_views
let(:alice) { Fabricate(:account, username: 'alice') } let(:alice) { Fabricate(:account, username: 'alice') }
describe 'GET #index' do describe 'GET #index' do

View File

@ -3,6 +3,8 @@
require 'rails_helper' require 'rails_helper'
describe MediaController do describe MediaController do
render_views
describe '#show' do describe '#show' do
it 'redirects to the file url when attached to a status' do it 'redirects to the file url when attached to a status' do
status = Fabricate(:status) status = Fabricate(:status)

View File

@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'rails_helper' require 'rails_helper'
RSpec.describe Oauth::AuthorizationsController, type: :controller do RSpec.describe Oauth::AuthorizationsController, type: :controller do

View File

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
describe Settings::Exports::BlockedAccountsController do describe Settings::Exports::BlockedAccountsController do
render_views
before do before do
sign_in Fabricate(:user), scope: :user sign_in Fabricate(:user), scope: :user
end end

View File

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
describe Settings::Exports::FollowingAccountsController do describe Settings::Exports::FollowingAccountsController do
render_views
before do before do
sign_in Fabricate(:user), scope: :user sign_in Fabricate(:user), scope: :user
end end

View File

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
describe Settings::Exports::MutedAccountsController do describe Settings::Exports::MutedAccountsController do
render_views
before do before do
sign_in Fabricate(:user), scope: :user sign_in Fabricate(:user), scope: :user
end end

View File

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
describe Settings::FollowerDomainsController do describe Settings::FollowerDomainsController do
render_views
let(:user) { Fabricate(:user) } let(:user) { Fabricate(:user) }
before do before do

View File

@ -1,6 +1,7 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Settings::ImportsController, type: :controller do RSpec.describe Settings::ImportsController, type: :controller do
render_views
before do before do
sign_in Fabricate(:user), scope: :user sign_in Fabricate(:user), scope: :user

View File

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
describe Settings::PreferencesController do describe Settings::PreferencesController do
render_views
let(:user) { Fabricate(:user) } let(:user) { Fabricate(:user) }
before do before do

View File

@ -1,6 +1,7 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Settings::ProfilesController, type: :controller do RSpec.describe Settings::ProfilesController, type: :controller do
render_views
before do before do
sign_in Fabricate(:user), scope: :user sign_in Fabricate(:user), scope: :user