Fix Lint/ConstantDefinitionInBlock cop (#24763)
This commit is contained in:
parent
8b636a29c6
commit
3df665fd23
9 changed files with 120 additions and 118 deletions
|
@ -106,19 +106,6 @@ Lint/AmbiguousOperatorPrecedence:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'config/initializers/rack_attack.rb'
|
- 'config/initializers/rack_attack.rb'
|
||||||
|
|
||||||
# Configuration parameters: AllowedMethods.
|
|
||||||
# AllowedMethods: enums
|
|
||||||
Lint/ConstantDefinitionInBlock:
|
|
||||||
Exclude:
|
|
||||||
- 'spec/controllers/api/base_controller_spec.rb'
|
|
||||||
- 'spec/controllers/application_controller_spec.rb'
|
|
||||||
- 'spec/controllers/concerns/accountable_concern_spec.rb'
|
|
||||||
- 'spec/controllers/concerns/signature_verification_spec.rb'
|
|
||||||
- 'spec/lib/activitypub/adapter_spec.rb'
|
|
||||||
- 'spec/lib/connection_pool/shared_connection_pool_spec.rb'
|
|
||||||
- 'spec/lib/connection_pool/shared_timed_stack_spec.rb'
|
|
||||||
- 'spec/models/concerns/remotable_spec.rb'
|
|
||||||
|
|
||||||
# Configuration parameters: AllowComments, AllowEmptyLambdas.
|
# Configuration parameters: AllowComments, AllowEmptyLambdas.
|
||||||
Lint/EmptyBlock:
|
Lint/EmptyBlock:
|
||||||
Exclude:
|
Exclude:
|
||||||
|
|
|
@ -74,7 +74,11 @@ describe Api::BaseController do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'error handling' do
|
describe 'error handling' do
|
||||||
ERRORS_WITH_CODES = {
|
before do
|
||||||
|
routes.draw { get 'error' => 'api/base#error' }
|
||||||
|
end
|
||||||
|
|
||||||
|
{
|
||||||
ActiveRecord::RecordInvalid => 422,
|
ActiveRecord::RecordInvalid => 422,
|
||||||
Mastodon::ValidationError => 422,
|
Mastodon::ValidationError => 422,
|
||||||
ActiveRecord::RecordNotFound => 404,
|
ActiveRecord::RecordNotFound => 404,
|
||||||
|
@ -82,13 +86,7 @@ describe Api::BaseController do
|
||||||
HTTP::Error => 503,
|
HTTP::Error => 503,
|
||||||
OpenSSL::SSL::SSLError => 503,
|
OpenSSL::SSL::SSLError => 503,
|
||||||
Mastodon::NotPermittedError => 403,
|
Mastodon::NotPermittedError => 403,
|
||||||
}
|
}.each do |error, code|
|
||||||
|
|
||||||
before do
|
|
||||||
routes.draw { get 'error' => 'api/base#error' }
|
|
||||||
end
|
|
||||||
|
|
||||||
ERRORS_WITH_CODES.each do |error, code|
|
|
||||||
it "Handles error class of #{error}" do
|
it "Handles error class of #{error}" do
|
||||||
expect(FakeService).to receive(:new).and_raise(error)
|
expect(FakeService).to receive(:new).and_raise(error)
|
||||||
|
|
||||||
|
|
|
@ -223,14 +223,16 @@ describe ApplicationController, type: :controller do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'cache_collection' do
|
describe 'cache_collection' do
|
||||||
class C < ApplicationController
|
subject do
|
||||||
public :cache_collection
|
Class.new(ApplicationController) do
|
||||||
|
public :cache_collection
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
shared_examples 'receives :with_includes' do |fabricator, klass|
|
shared_examples 'receives :with_includes' do |fabricator, klass|
|
||||||
it 'uses raw if it is not an ActiveRecord::Relation' do
|
it 'uses raw if it is not an ActiveRecord::Relation' do
|
||||||
record = Fabricate(fabricator)
|
record = Fabricate(fabricator)
|
||||||
expect(C.new.cache_collection([record], klass)).to eq [record]
|
expect(subject.new.cache_collection([record], klass)).to eq [record]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -241,13 +243,13 @@ describe ApplicationController, type: :controller do
|
||||||
record = Fabricate(fabricator)
|
record = Fabricate(fabricator)
|
||||||
relation = klass.none
|
relation = klass.none
|
||||||
allow(relation).to receive(:cache_ids).and_return([record])
|
allow(relation).to receive(:cache_ids).and_return([record])
|
||||||
expect(C.new.cache_collection(relation, klass)).to eq [record]
|
expect(subject.new.cache_collection(relation, klass)).to eq [record]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns raw unless class responds to :with_includes' do
|
it 'returns raw unless class responds to :with_includes' do
|
||||||
raw = Object.new
|
raw = Object.new
|
||||||
expect(C.new.cache_collection(raw, Object)).to eq raw
|
expect(subject.new.cache_collection(raw, Object)).to eq raw
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'Status' do
|
context 'Status' do
|
||||||
|
|
|
@ -3,18 +3,20 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe AccountableConcern do
|
RSpec.describe AccountableConcern do
|
||||||
class Hoge
|
let(:hoge_class) do
|
||||||
include AccountableConcern
|
Class.new do
|
||||||
attr_reader :current_account
|
include AccountableConcern
|
||||||
|
attr_reader :current_account
|
||||||
|
|
||||||
def initialize(current_account)
|
def initialize(current_account)
|
||||||
@current_account = current_account
|
@current_account = current_account
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:user) { Fabricate(:account) }
|
let(:user) { Fabricate(:account) }
|
||||||
let(:target) { Fabricate(:account) }
|
let(:target) { Fabricate(:account) }
|
||||||
let(:hoge) { Hoge.new(user) }
|
let(:hoge) { hoge_class.new(user) }
|
||||||
|
|
||||||
describe '#log_action' do
|
describe '#log_action' do
|
||||||
it 'creates Admin::ActionLog' do
|
it 'creates Admin::ActionLog' do
|
||||||
|
|
|
@ -3,14 +3,16 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
describe ApplicationController, type: :controller do
|
describe ApplicationController, type: :controller do
|
||||||
class WrappedActor
|
let(:wrapped_actor_class) do
|
||||||
attr_reader :wrapped_account
|
Class.new do
|
||||||
|
attr_reader :wrapped_account
|
||||||
|
|
||||||
def initialize(wrapped_account)
|
def initialize(wrapped_account)
|
||||||
@wrapped_account = wrapped_account
|
@wrapped_account = wrapped_account
|
||||||
|
end
|
||||||
|
|
||||||
|
delegate :uri, :keypair, to: :wrapped_account
|
||||||
end
|
end
|
||||||
|
|
||||||
delegate :uri, :keypair, to: :wrapped_account
|
|
||||||
end
|
end
|
||||||
|
|
||||||
controller do
|
controller do
|
||||||
|
@ -93,7 +95,7 @@ describe ApplicationController, type: :controller do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with a valid actor that is not an Account' do
|
context 'with a valid actor that is not an Account' do
|
||||||
let(:actor) { WrappedActor.new(author) }
|
let(:actor) { wrapped_actor_class.new(author) }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
get :success
|
get :success
|
||||||
|
|
|
@ -3,43 +3,51 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe ActivityPub::Adapter do
|
RSpec.describe ActivityPub::Adapter do
|
||||||
class TestObject < ActiveModelSerializers::Model
|
before do
|
||||||
attributes :foo
|
test_object_class = Class.new(ActiveModelSerializers::Model) do
|
||||||
end
|
attributes :foo
|
||||||
|
|
||||||
class TestWithBasicContextSerializer < ActivityPub::Serializer
|
|
||||||
attributes :foo
|
|
||||||
end
|
|
||||||
|
|
||||||
class TestWithNamedContextSerializer < ActivityPub::Serializer
|
|
||||||
context :security
|
|
||||||
attributes :foo
|
|
||||||
end
|
|
||||||
|
|
||||||
class TestWithNestedNamedContextSerializer < ActivityPub::Serializer
|
|
||||||
attributes :foo
|
|
||||||
|
|
||||||
has_one :virtual_object, key: :baz, serializer: TestWithNamedContextSerializer
|
|
||||||
|
|
||||||
def virtual_object
|
|
||||||
object
|
|
||||||
end
|
end
|
||||||
end
|
stub_const('TestObject', test_object_class)
|
||||||
|
|
||||||
class TestWithContextExtensionSerializer < ActivityPub::Serializer
|
test_with_basic_context_serializer = Class.new(ActivityPub::Serializer) do
|
||||||
context_extensions :sensitive
|
attributes :foo
|
||||||
attributes :foo
|
|
||||||
end
|
|
||||||
|
|
||||||
class TestWithNestedContextExtensionSerializer < ActivityPub::Serializer
|
|
||||||
context_extensions :manually_approves_followers
|
|
||||||
attributes :foo
|
|
||||||
|
|
||||||
has_one :virtual_object, key: :baz, serializer: TestWithContextExtensionSerializer
|
|
||||||
|
|
||||||
def virtual_object
|
|
||||||
object
|
|
||||||
end
|
end
|
||||||
|
stub_const('TestWithBasicContextSerializer', test_with_basic_context_serializer)
|
||||||
|
|
||||||
|
test_with_named_context_serializer = Class.new(ActivityPub::Serializer) do
|
||||||
|
context :security
|
||||||
|
attributes :foo
|
||||||
|
end
|
||||||
|
stub_const('TestWithNamedContextSerializer', test_with_named_context_serializer)
|
||||||
|
|
||||||
|
test_with_nested_named_context_serializer = Class.new(ActivityPub::Serializer) do
|
||||||
|
attributes :foo
|
||||||
|
|
||||||
|
has_one :virtual_object, key: :baz, serializer: TestWithNamedContextSerializer
|
||||||
|
|
||||||
|
def virtual_object
|
||||||
|
object
|
||||||
|
end
|
||||||
|
end
|
||||||
|
stub_const('TestWithNestedNamedContextSerializer', test_with_nested_named_context_serializer)
|
||||||
|
|
||||||
|
test_with_context_extension_serializer = Class.new(ActivityPub::Serializer) do
|
||||||
|
context_extensions :sensitive
|
||||||
|
attributes :foo
|
||||||
|
end
|
||||||
|
stub_const('TestWithContextExtensionSerializer', test_with_context_extension_serializer)
|
||||||
|
|
||||||
|
test_with_nested_context_extension_serializer = Class.new(ActivityPub::Serializer) do
|
||||||
|
context_extensions :manually_approves_followers
|
||||||
|
attributes :foo
|
||||||
|
|
||||||
|
has_one :virtual_object, key: :baz, serializer: TestWithContextExtensionSerializer
|
||||||
|
|
||||||
|
def virtual_object
|
||||||
|
object
|
||||||
|
end
|
||||||
|
end
|
||||||
|
stub_const('TestWithNestedContextExtensionSerializer', test_with_nested_context_extension_serializer)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#serializable_hash' do
|
describe '#serializable_hash' do
|
||||||
|
|
|
@ -3,22 +3,24 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
describe ConnectionPool::SharedConnectionPool do
|
describe ConnectionPool::SharedConnectionPool do
|
||||||
class MiniConnection
|
subject { described_class.new(size: 5, timeout: 5) { |site| mini_connection_class.new(site) } }
|
||||||
attr_reader :site
|
|
||||||
|
|
||||||
def initialize(site)
|
let(:mini_connection_class) do
|
||||||
@site = site
|
Class.new do
|
||||||
|
attr_reader :site
|
||||||
|
|
||||||
|
def initialize(site)
|
||||||
|
@site = site
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
subject { described_class.new(size: 5, timeout: 5) { |site| MiniConnection.new(site) } }
|
|
||||||
|
|
||||||
describe '#with' do
|
describe '#with' do
|
||||||
it 'runs a block with a connection' do
|
it 'runs a block with a connection' do
|
||||||
block_run = false
|
block_run = false
|
||||||
|
|
||||||
subject.with('foo') do |connection|
|
subject.with('foo') do |connection|
|
||||||
expect(connection).to be_a MiniConnection
|
expect(connection).to be_a mini_connection_class
|
||||||
block_run = true
|
block_run = true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -3,30 +3,32 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
describe ConnectionPool::SharedTimedStack do
|
describe ConnectionPool::SharedTimedStack do
|
||||||
class MiniConnection
|
subject { described_class.new(5) { |site| mini_connection_class.new(site) } }
|
||||||
attr_reader :site
|
|
||||||
|
|
||||||
def initialize(site)
|
let(:mini_connection_class) do
|
||||||
@site = site
|
Class.new do
|
||||||
|
attr_reader :site
|
||||||
|
|
||||||
|
def initialize(site)
|
||||||
|
@site = site
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
subject { described_class.new(5) { |site| MiniConnection.new(site) } }
|
|
||||||
|
|
||||||
describe '#push' do
|
describe '#push' do
|
||||||
it 'keeps the connection in the stack' do
|
it 'keeps the connection in the stack' do
|
||||||
subject.push(MiniConnection.new('foo'))
|
subject.push(mini_connection_class.new('foo'))
|
||||||
expect(subject.size).to eq 1
|
expect(subject.size).to eq 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#pop' do
|
describe '#pop' do
|
||||||
it 'returns a connection' do
|
it 'returns a connection' do
|
||||||
expect(subject.pop('foo')).to be_a MiniConnection
|
expect(subject.pop('foo')).to be_a mini_connection_class
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns the same connection that was pushed in' do
|
it 'returns the same connection that was pushed in' do
|
||||||
connection = MiniConnection.new('foo')
|
connection = mini_connection_class.new('foo')
|
||||||
subject.push(connection)
|
subject.push(connection)
|
||||||
expect(subject.pop('foo')).to be connection
|
expect(subject.pop('foo')).to be connection
|
||||||
end
|
end
|
||||||
|
@ -36,8 +38,8 @@ describe ConnectionPool::SharedTimedStack do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'repurposes a connection for a different site when maximum amount is reached' do
|
it 'repurposes a connection for a different site when maximum amount is reached' do
|
||||||
5.times { subject.push(MiniConnection.new('foo')) }
|
5.times { subject.push(mini_connection_class.new('foo')) }
|
||||||
expect(subject.pop('bar')).to be_a MiniConnection
|
expect(subject.pop('bar')).to be_a mini_connection_class
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -47,14 +49,14 @@ describe ConnectionPool::SharedTimedStack do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns false when there are connections on the stack' do
|
it 'returns false when there are connections on the stack' do
|
||||||
subject.push(MiniConnection.new('foo'))
|
subject.push(mini_connection_class.new('foo'))
|
||||||
expect(subject.empty?).to be false
|
expect(subject.empty?).to be false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#size' do
|
describe '#size' do
|
||||||
it 'returns the number of connections on the stack' do
|
it 'returns the number of connections on the stack' do
|
||||||
2.times { subject.push(MiniConnection.new('foo')) }
|
2.times { subject.push(mini_connection_class.new('foo')) }
|
||||||
expect(subject.size).to eq 2
|
expect(subject.size).to eq 2
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,48 +3,47 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe Remotable do
|
RSpec.describe Remotable do
|
||||||
class Foo
|
let(:foo_class) do
|
||||||
def initialize
|
Class.new do
|
||||||
@attrs = {}
|
def initialize
|
||||||
end
|
@attrs = {}
|
||||||
|
end
|
||||||
|
|
||||||
def [](arg)
|
def [](arg)
|
||||||
@attrs[arg]
|
@attrs[arg]
|
||||||
end
|
end
|
||||||
|
|
||||||
def []=(arg1, arg2)
|
def []=(arg1, arg2)
|
||||||
@attrs[arg1] = arg2
|
@attrs[arg1] = arg2
|
||||||
end
|
end
|
||||||
|
|
||||||
def hoge=(arg); end
|
def hoge=(arg); end
|
||||||
|
|
||||||
def hoge_file_name; end
|
def hoge_file_name; end
|
||||||
|
|
||||||
def hoge_file_name=(arg); end
|
def hoge_file_name=(arg); end
|
||||||
|
|
||||||
def has_attribute?(arg); end
|
def has_attribute?(arg); end
|
||||||
|
|
||||||
def self.attachment_definitions
|
def self.attachment_definitions
|
||||||
{ hoge: nil }
|
{ hoge: nil }
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
before do
|
|
||||||
class Foo
|
|
||||||
include Remotable
|
|
||||||
|
|
||||||
remotable_attachment :hoge, 1.kilobyte
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:attribute_name) { "#{hoge}_remote_url".to_sym }
|
let(:attribute_name) { "#{hoge}_remote_url".to_sym }
|
||||||
let(:code) { 200 }
|
let(:code) { 200 }
|
||||||
let(:file) { 'filename="foo.txt"' }
|
let(:file) { 'filename="foo.txt"' }
|
||||||
let(:foo) { Foo.new }
|
let(:foo) { foo_class.new }
|
||||||
let(:headers) { { 'content-disposition' => file } }
|
let(:headers) { { 'content-disposition' => file } }
|
||||||
let(:hoge) { :hoge }
|
let(:hoge) { :hoge }
|
||||||
let(:url) { 'https://google.com' }
|
let(:url) { 'https://google.com' }
|
||||||
|
|
||||||
|
before do
|
||||||
|
foo_class.include described_class
|
||||||
|
foo_class.remotable_attachment :hoge, 1.kilobyte
|
||||||
|
end
|
||||||
|
|
||||||
it 'defines a method #hoge_remote_url=' do
|
it 'defines a method #hoge_remote_url=' do
|
||||||
expect(foo).to respond_to(:hoge_remote_url=)
|
expect(foo).to respond_to(:hoge_remote_url=)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue