forked from mirrors/catstodon
Run rubocop formatting except line length (#23632)
This commit is contained in:
parent
593bb8ce99
commit
669f6d2c0a
71 changed files with 269 additions and 566 deletions
|
@ -1,6 +1,6 @@
|
|||
# This configuration was generated by
|
||||
# `rubocop --auto-gen-config --auto-gen-only-exclude --no-exclude-limit`
|
||||
# on 2023-02-16 04:55:24 UTC using RuboCop version 1.45.1.
|
||||
# on 2023-02-16 05:53:07 UTC using RuboCop version 1.45.1.
|
||||
# The point is for the user to remove these configuration records
|
||||
# one by one as the offenses are removed from the code base.
|
||||
# Note that changes in the inspected code, or installation of new
|
||||
|
@ -14,53 +14,6 @@ Bundler/OrderedGems:
|
|||
Exclude:
|
||||
- 'Gemfile'
|
||||
|
||||
# Offense count: 5
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
||||
# SupportedStyles: with_first_argument, with_fixed_indentation
|
||||
Layout/ArgumentAlignment:
|
||||
Exclude:
|
||||
- 'spec/models/account_statuses_cleanup_policy_spec.rb'
|
||||
- 'spec/services/activitypub/process_collection_service_spec.rb'
|
||||
- 'spec/services/activitypub/process_status_update_service_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyleAlignWith.
|
||||
# SupportedStylesAlignWith: either, start_of_block, start_of_line
|
||||
Layout/BlockAlignment:
|
||||
Exclude:
|
||||
- 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
Layout/ClosingParenthesisIndentation:
|
||||
Exclude:
|
||||
- 'spec/controllers/auth/sessions_controller_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: AllowForAlignment.
|
||||
Layout/CommentIndentation:
|
||||
Exclude:
|
||||
- 'db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
|
||||
|
||||
# Offense count: 22
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: leading, trailing
|
||||
Layout/DotPosition:
|
||||
Exclude:
|
||||
- 'lib/paperclip/attachment_extensions.rb'
|
||||
- 'spec/routing/api_routing_spec.rb'
|
||||
- 'spec/routing/well_known_routes_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
Layout/ElseAlignment:
|
||||
Exclude:
|
||||
- 'db/migrate/20161006213403_rails_settings_migration.rb'
|
||||
|
||||
# Offense count: 81
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
Layout/EmptyLineAfterGuardClause:
|
||||
|
@ -183,73 +136,6 @@ Layout/EmptyLineAfterMagicComment:
|
|||
- 'spec/controllers/api/v1/accounts/statuses_controller_spec.rb'
|
||||
- 'spec/models/tag_spec.rb'
|
||||
|
||||
# Offense count: 3
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
Layout/EmptyLines:
|
||||
Exclude:
|
||||
- 'spec/controllers/authorize_interactions_controller_spec.rb'
|
||||
- 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb'
|
||||
- 'spec/lib/activitypub/activity/create_spec.rb'
|
||||
|
||||
# Offense count: 9
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: empty_lines, no_empty_lines
|
||||
Layout/EmptyLinesAroundBlockBody:
|
||||
Exclude:
|
||||
- 'spec/fabricators/system_key_fabricator.rb'
|
||||
- 'spec/models/account_alias_spec.rb'
|
||||
- 'spec/models/device_spec.rb'
|
||||
- 'spec/models/encrypted_message_spec.rb'
|
||||
- 'spec/models/login_activity_spec.rb'
|
||||
- 'spec/models/one_time_key_spec.rb'
|
||||
- 'spec/models/system_key_spec.rb'
|
||||
- 'spec/services/bootstrap_timeline_service_spec.rb'
|
||||
- 'spec/services/fetch_oembed_service_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyleAlignWith, Severity.
|
||||
# SupportedStylesAlignWith: keyword, variable, start_of_line
|
||||
Layout/EndAlignment:
|
||||
Exclude:
|
||||
- 'db/migrate/20161006213403_rails_settings_migration.rb'
|
||||
|
||||
# Offense count: 19
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment.
|
||||
Layout/ExtraSpacing:
|
||||
Exclude:
|
||||
- 'spec/config/initializers/rack_attack_spec.rb'
|
||||
- 'spec/controllers/api/v2/filters/statuses_controller_spec.rb'
|
||||
- 'spec/fabricators/custom_filter_keyword_fabricator.rb'
|
||||
- 'spec/fabricators/poll_vote_fabricator.rb'
|
||||
- 'spec/models/account_statuses_cleanup_policy_spec.rb'
|
||||
- 'spec/services/activitypub/process_status_update_service_spec.rb'
|
||||
- 'spec/services/import_service_spec.rb'
|
||||
- 'spec/services/resolve_account_service_spec.rb'
|
||||
- 'spec/services/resolve_url_service_spec.rb'
|
||||
- 'spec/validators/note_length_validator_spec.rb'
|
||||
- 'spec/validators/unreserved_username_validator_spec.rb'
|
||||
- 'spec/workers/activitypub/move_distribution_worker_spec.rb'
|
||||
|
||||
# Offense count: 4
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
||||
# SupportedStyles: consistent, consistent_relative_to_receiver, special_for_inner_method_call, special_for_inner_method_call_in_parentheses
|
||||
Layout/FirstArgumentIndentation:
|
||||
Exclude:
|
||||
- 'spec/services/remove_status_service_spec.rb'
|
||||
|
||||
# Offense count: 4
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
||||
# SupportedStyles: special_inside_parentheses, consistent, align_brackets
|
||||
Layout/FirstArrayElementIndentation:
|
||||
Exclude:
|
||||
- 'spec/controllers/admin/dashboard_controller_spec.rb'
|
||||
- 'spec/workers/activitypub/move_distribution_worker_spec.rb'
|
||||
|
||||
# Offense count: 113
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
|
||||
|
@ -276,49 +162,6 @@ Layout/HashAlignment:
|
|||
- 'spec/models/admin/account_action_spec.rb'
|
||||
- 'spec/models/concerns/account_interactions_spec.rb'
|
||||
|
||||
# Offense count: 3
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
Layout/HeredocIndentation:
|
||||
Exclude:
|
||||
- 'spec/controllers/well_known/host_meta_controller_spec.rb'
|
||||
- 'spec/lib/link_details_extractor_spec.rb'
|
||||
|
||||
# Offense count: 5
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: normal, indented_internal_methods
|
||||
Layout/IndentationConsistency:
|
||||
Exclude:
|
||||
- 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb'
|
||||
- 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb'
|
||||
- 'spec/models/trends/statuses_spec.rb'
|
||||
- 'spec/services/import_service_spec.rb'
|
||||
|
||||
# Offense count: 4
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: Width, AllowedPatterns.
|
||||
Layout/IndentationWidth:
|
||||
Exclude:
|
||||
- 'db/migrate/20161006213403_rails_settings_migration.rb'
|
||||
- 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb'
|
||||
- 'spec/services/account_statuses_cleanup_service_spec.rb'
|
||||
- 'spec/services/import_service_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: AllowDoxygenCommentStyle, AllowGemfileRubyComment.
|
||||
Layout/LeadingCommentSpace:
|
||||
Exclude:
|
||||
- 'lib/paperclip/attachment_extensions.rb'
|
||||
|
||||
# Offense count: 2
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: AutoCorrect, EnforcedStyle.
|
||||
# SupportedStyles: space, no_space
|
||||
Layout/LineContinuationSpacing:
|
||||
Exclude:
|
||||
- 'spec/support/stories/profile_stories.rb'
|
||||
|
||||
# Offense count: 577
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
|
||||
|
@ -326,124 +169,6 @@ Layout/LineContinuationSpacing:
|
|||
Layout/LineLength:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 4
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: symmetrical, new_line, same_line
|
||||
Layout/MultilineMethodCallBraceLayout:
|
||||
Exclude:
|
||||
- 'spec/models/account_statuses_cleanup_policy_spec.rb'
|
||||
- 'spec/services/activitypub/process_status_update_service_spec.rb'
|
||||
|
||||
# Offense count: 3
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator.
|
||||
# SupportedStylesForExponentOperator: space, no_space
|
||||
Layout/SpaceAroundOperators:
|
||||
Exclude:
|
||||
- 'spec/services/activitypub/fetch_remote_status_service_spec.rb'
|
||||
- 'spec/validators/note_length_validator_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
|
||||
# SupportedStyles: space, no_space
|
||||
# SupportedStylesForEmptyBraces: space, no_space
|
||||
Layout/SpaceBeforeBlockBraces:
|
||||
Exclude:
|
||||
- 'spec/controllers/api/v1/reports_controller_spec.rb'
|
||||
|
||||
# Offense count: 3
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: AllowForAlignment.
|
||||
Layout/SpaceBeforeFirstArg:
|
||||
Exclude:
|
||||
- 'spec/fabricators/custom_filter_keyword_fabricator.rb'
|
||||
- 'spec/fabricators/poll_vote_fabricator.rb'
|
||||
- 'spec/models/concerns/account_interactions_spec.rb'
|
||||
|
||||
# Offense count: 24
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBrackets.
|
||||
# SupportedStyles: space, no_space, compact
|
||||
# SupportedStylesForEmptyBrackets: space, no_space
|
||||
Layout/SpaceInsideArrayLiteralBrackets:
|
||||
Exclude:
|
||||
- 'db/migrate/20161006213403_rails_settings_migration.rb'
|
||||
- 'spec/controllers/settings/applications_controller_spec.rb'
|
||||
- 'spec/lib/extractor_spec.rb'
|
||||
- 'spec/models/export_spec.rb'
|
||||
- 'spec/services/activitypub/process_account_service_spec.rb'
|
||||
- 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
|
||||
|
||||
# Offense count: 4
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
|
||||
# SupportedStyles: space, no_space
|
||||
# SupportedStylesForEmptyBraces: space, no_space
|
||||
Layout/SpaceInsideBlockBraces:
|
||||
Exclude:
|
||||
- 'spec/lib/fast_ip_map_spec.rb'
|
||||
- 'spec/models/user_role_spec.rb'
|
||||
- 'spec/serializers/rest/account_serializer_spec.rb'
|
||||
- 'spec/workers/activitypub/distribution_worker_spec.rb'
|
||||
|
||||
# Offense count: 6
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
|
||||
# SupportedStyles: space, no_space, compact
|
||||
# SupportedStylesForEmptyBraces: space, no_space
|
||||
Layout/SpaceInsideHashLiteralBraces:
|
||||
Exclude:
|
||||
- 'app/lib/activitypub/activity/create.rb'
|
||||
- 'app/services/activitypub/fetch_replies_service.rb'
|
||||
- 'spec/services/activitypub/process_collection_service_spec.rb'
|
||||
- 'spec/services/update_status_service_spec.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: space, compact, no_space
|
||||
Layout/SpaceInsideParens:
|
||||
Exclude:
|
||||
- 'spec/validators/unreserved_username_validator_spec.rb'
|
||||
|
||||
# Offense count: 4
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: space, no_space
|
||||
Layout/SpaceInsideStringInterpolation:
|
||||
Exclude:
|
||||
- 'spec/controllers/auth/sessions_controller_spec.rb'
|
||||
- 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb'
|
||||
- 'spec/services/activitypub/process_account_service_spec.rb'
|
||||
|
||||
# Offense count: 8
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: EnforcedStyle.
|
||||
# SupportedStyles: final_newline, final_blank_line
|
||||
Layout/TrailingEmptyLines:
|
||||
Exclude:
|
||||
- 'db/migrate/20190306145741_add_lock_version_to_polls.rb'
|
||||
- 'db/migrate/20190807135426_add_comments_to_domain_blocks.rb'
|
||||
- 'db/migrate/20200312162302_add_status_ids_to_announcements.rb'
|
||||
- 'db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb'
|
||||
- 'db/migrate/20200628133322_create_account_notes.rb'
|
||||
- 'db/migrate/20210722120340_create_account_statuses_cleanup_policies.rb'
|
||||
- 'spec/fabricators/ip_block_fabricator.rb'
|
||||
- 'spec/fabricators/status_edit_fabricator.rb'
|
||||
|
||||
# Offense count: 7
|
||||
# This cop supports safe autocorrection (--autocorrect).
|
||||
# Configuration parameters: AllowInHeredoc.
|
||||
Layout/TrailingWhitespace:
|
||||
Exclude:
|
||||
- 'app/models/concerns/expireable.rb'
|
||||
- 'db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb'
|
||||
- 'lib/tasks/mastodon.rake'
|
||||
- 'spec/models/account/field_spec.rb'
|
||||
- 'spec/services/remove_from_follwers_service_spec.rb'
|
||||
|
||||
# Offense count: 14
|
||||
# Configuration parameters: AllowedMethods, AllowedPatterns.
|
||||
Lint/AmbiguousBlockAssociation:
|
||||
|
|
|
@ -327,7 +327,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
|
|||
def resolve_thread(status)
|
||||
return unless status.reply? && status.thread.nil? && Request.valid_url?(in_reply_to_uri)
|
||||
|
||||
ThreadResolveWorker.perform_async(status.id, in_reply_to_uri, { 'request_id' => @options[:request_id]})
|
||||
ThreadResolveWorker.perform_async(status.id, in_reply_to_uri, { 'request_id' => @options[:request_id] })
|
||||
end
|
||||
|
||||
def fetch_replies(status)
|
||||
|
@ -338,7 +338,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
|
|||
return unless replies.nil?
|
||||
|
||||
uri = value_or_id(collection)
|
||||
ActivityPub::FetchRepliesWorker.perform_async(status.id, uri, { 'request_id' => @options[:request_id]}) unless uri.nil?
|
||||
ActivityPub::FetchRepliesWorker.perform_async(status.id, uri, { 'request_id' => @options[:request_id] }) unless uri.nil?
|
||||
end
|
||||
|
||||
def conversation_from_uri(uri)
|
||||
|
|
|
@ -17,7 +17,7 @@ module Expireable
|
|||
end
|
||||
|
||||
def expires_in=(interval)
|
||||
self.expires_at = interval.present? ? interval.to_i.seconds.from_now : nil
|
||||
self.expires_at = interval.present? ? interval.to_i.seconds.from_now : nil
|
||||
@expires_in = interval
|
||||
end
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ class ActivityPub::FetchRepliesService < BaseService
|
|||
@items = collection_items(collection_or_uri)
|
||||
return if @items.nil?
|
||||
|
||||
FetchReplyWorker.push_bulk(filtered_replies) { |reply_uri| [reply_uri, { 'request_id' => request_id}] }
|
||||
FetchReplyWorker.push_bulk(filtered_replies) { |reply_uri| [reply_uri, { 'request_id' => request_id }] }
|
||||
|
||||
@items
|
||||
end
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
MIGRATION_BASE_CLASS = if ActiveRecord::VERSION::MAJOR >= 5
|
||||
ActiveRecord::Migration[5.0]
|
||||
else
|
||||
ActiveRecord::Migration[4.2]
|
||||
end
|
||||
ActiveRecord::Migration[5.0]
|
||||
else
|
||||
ActiveRecord::Migration[4.2]
|
||||
end
|
||||
|
||||
class RailsSettingsMigration < MIGRATION_BASE_CLASS
|
||||
def self.up
|
||||
|
@ -12,7 +12,7 @@ class RailsSettingsMigration < MIGRATION_BASE_CLASS
|
|||
t.references :target, null: false, polymorphic: true, index: { name: 'index_settings_on_target_type_and_target_id' }
|
||||
t.timestamps null: true
|
||||
end
|
||||
add_index :settings, [ :target_type, :target_id, :var ], unique: true
|
||||
add_index :settings, [:target_type, :target_id, :var], unique: true
|
||||
end
|
||||
|
||||
def self.down
|
||||
|
|
|
@ -4,9 +4,9 @@ class ImproveIndexOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecord::Mi
|
|||
disable_ddl_transaction!
|
||||
|
||||
def change
|
||||
# These changes ware reverted by migration 20180514140000.
|
||||
# add_index :statuses, [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)', algorithm: :concurrently
|
||||
# add_index :statuses, [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently
|
||||
# remove_index :statuses, column: [:account_id, :id, :visibility, :updated_at], order: { id: :desc }, algorithm: :concurrently, name: :index_statuses_20180106
|
||||
# These changes ware reverted by migration 20180514140000.
|
||||
# add_index :statuses, [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)', algorithm: :concurrently
|
||||
# add_index :statuses, [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently
|
||||
# remove_index :statuses, column: [:account_id, :id, :visibility, :updated_at], order: { id: :desc }, algorithm: :concurrently, name: :index_statuses_20180106
|
||||
end
|
||||
end
|
||||
|
|
|
@ -21,4 +21,3 @@ class AddLockVersionToPolls < ActiveRecord::Migration[5.2]
|
|||
remove_column :polls, :lock_version
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -4,4 +4,3 @@ class AddCommentsToDomainBlocks < ActiveRecord::Migration[5.2]
|
|||
add_column :domain_blocks, :public_comment, :text
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -3,4 +3,3 @@ class AddStatusIdsToAnnouncements < ActiveRecord::Migration[5.2]
|
|||
add_column :announcements, :status_ids, :bigint, array: true
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -19,4 +19,3 @@ class RemoveDuplicatedIndexesPghero < ActiveRecord::Migration[5.2]
|
|||
add_index :markers, :user_id, name: :index_markers_on_user_id unless index_exists?(:markers, :user_id, name: :index_markers_on_user_id)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -10,4 +10,3 @@ class CreateAccountNotes < ActiveRecord::Migration[5.2]
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -17,4 +17,3 @@ class CreateAccountStatusesCleanupPolicies < ActiveRecord::Migration[6.1]
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ class FixCustomFilterKeywordsIdSeq < ActiveRecord::Migration[6.1]
|
|||
|
||||
def up
|
||||
# 20220613110711 manually inserts items with set `id` in the database, but
|
||||
# we also need to bump the sequence number, otherwise
|
||||
# we also need to bump the sequence number, otherwise
|
||||
safety_assured do
|
||||
execute <<-SQL.squish
|
||||
BEGIN;
|
||||
|
|
|
@ -8,7 +8,7 @@ module Paperclip
|
|||
|
||||
# monkey-patch to avoid unlinking too avoid unlinking source file too early
|
||||
# see https://github.com/kreeti/kt-paperclip/issues/64
|
||||
def post_process_style(name, style) #:nodoc:
|
||||
def post_process_style(name, style) # :nodoc:
|
||||
raise "Style #{name} has no processors defined." if style.processors.blank?
|
||||
|
||||
intermediate_files = []
|
||||
|
@ -16,16 +16,16 @@ module Paperclip
|
|||
# if we're processing the original, close + unlink the source tempfile
|
||||
intermediate_files << original if name == :original
|
||||
|
||||
@queued_for_write[name] = style.processors.
|
||||
inject(original) do |file, processor|
|
||||
@queued_for_write[name] = style.processors
|
||||
.inject(original) do |file, processor|
|
||||
file = Paperclip.processor(processor).make(file, style.processor_options, self)
|
||||
intermediate_files << file unless file == original
|
||||
file
|
||||
end
|
||||
|
||||
unadapted_file = @queued_for_write[name]
|
||||
@queued_for_write[name] = Paperclip.io_adapters.
|
||||
for(@queued_for_write[name], @options[:adapter_options])
|
||||
@queued_for_write[name] = Paperclip.io_adapters
|
||||
.for(@queued_for_write[name], @options[:adapter_options])
|
||||
unadapted_file.close if unadapted_file.respond_to?(:close)
|
||||
@queued_for_write[name]
|
||||
rescue Paperclip::Errors::NotIdentifiedByImageMagickError => e
|
||||
|
|
|
@ -286,13 +286,13 @@ namespace :mastodon do
|
|||
q.required true
|
||||
q.modify :strip
|
||||
end
|
||||
|
||||
|
||||
linksharing_access_key = prompt.ask('Storj Linksharing access key (uplink share --register --public --readonly=true --disallow-lists --not-after=none sj://bucket):') do |q|
|
||||
q.required true
|
||||
q.modify :strip
|
||||
end
|
||||
env['S3_ALIAS_HOST'] = "link.storjshare.io/raw/#{linksharing_access_key}/#{env['S3_BUCKET']}"
|
||||
|
||||
|
||||
when 'Google Cloud Storage'
|
||||
env['S3_ENABLED'] = 'true'
|
||||
env['S3_PROTOCOL'] = 'https'
|
||||
|
|
|
@ -35,12 +35,12 @@ describe Rack::Attack do
|
|||
let(:request) { ->() { post path, {}, 'REMOTE_ADDR' => remote_ip } }
|
||||
|
||||
context 'for exact path' do
|
||||
let(:path) { '/auth' }
|
||||
let(:path) { '/auth' }
|
||||
it_behaves_like 'throttled endpoint'
|
||||
end
|
||||
|
||||
context 'for path with format' do
|
||||
let(:path) { '/auth.html' }
|
||||
let(:path) { '/auth.html' }
|
||||
it_behaves_like 'throttled endpoint'
|
||||
end
|
||||
end
|
||||
|
@ -50,7 +50,7 @@ describe Rack::Attack do
|
|||
let(:request) { ->() { post path, {}, 'REMOTE_ADDR' => remote_ip } }
|
||||
|
||||
context 'for exact path' do
|
||||
let(:path) { '/api/v1/accounts' }
|
||||
let(:path) { '/api/v1/accounts' }
|
||||
it_behaves_like 'throttled endpoint'
|
||||
end
|
||||
|
||||
|
@ -70,12 +70,12 @@ describe Rack::Attack do
|
|||
let(:request) { ->() { post path, {}, 'REMOTE_ADDR' => remote_ip } }
|
||||
|
||||
context 'for exact path' do
|
||||
let(:path) { '/auth/sign_in' }
|
||||
let(:path) { '/auth/sign_in' }
|
||||
it_behaves_like 'throttled endpoint'
|
||||
end
|
||||
|
||||
context 'for path with format' do
|
||||
let(:path) { '/auth/sign_in.html' }
|
||||
let(:path) { '/auth/sign_in.html' }
|
||||
it_behaves_like 'throttled endpoint'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,10 +8,10 @@ describe Admin::DashboardController, type: :controller do
|
|||
describe 'GET #index' do
|
||||
before do
|
||||
allow(Admin::SystemCheck).to receive(:perform).and_return([
|
||||
Admin::SystemCheck::Message.new(:database_schema_check),
|
||||
Admin::SystemCheck::Message.new(:rules_check, nil, admin_rules_path),
|
||||
Admin::SystemCheck::Message.new(:sidekiq_process_check, 'foo, bar'),
|
||||
])
|
||||
Admin::SystemCheck::Message.new(:database_schema_check),
|
||||
Admin::SystemCheck::Message.new(:rules_check, nil, admin_rules_path),
|
||||
Admin::SystemCheck::Message.new(:sidekiq_process_check, 'foo, bar'),
|
||||
])
|
||||
sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin'))
|
||||
end
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ describe Api::V1::Accounts::CredentialsController do
|
|||
it 'returns http success' do
|
||||
expect(response).to have_http_status(200)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'with invalid data' do
|
||||
before do
|
||||
|
|
|
@ -20,7 +20,7 @@ RSpec.describe Api::V1::ReportsController, type: :controller do
|
|||
let(:target_account) { status.account }
|
||||
let(:category) { nil }
|
||||
let(:forward) { nil }
|
||||
let(:rule_ids){ nil }
|
||||
let(:rule_ids) { nil }
|
||||
|
||||
before do
|
||||
allow(AdminMailer).to receive(:new_report).and_return(double('email', deliver_later: nil))
|
||||
|
|
|
@ -31,7 +31,7 @@ RSpec.describe Api::V1::Statuses::FavouritedByAccountsController, type: :control
|
|||
it 'returns accounts who favorited the status' do
|
||||
get :index, params: { status_id: status.id, limit: 2 }
|
||||
expect(body_as_json.size).to eq 2
|
||||
expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
|
||||
expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
|
||||
end
|
||||
|
||||
it 'does not return blocked users' do
|
||||
|
|
|
@ -31,7 +31,7 @@ RSpec.describe Api::V1::Statuses::RebloggedByAccountsController, type: :controll
|
|||
it 'returns accounts who reblogged the status' do
|
||||
get :index, params: { status_id: status.id, limit: 2 }
|
||||
expect(body_as_json.size).to eq 2
|
||||
expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
|
||||
expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
|
||||
end
|
||||
|
||||
it 'does not return blocked users' do
|
||||
|
|
|
@ -64,7 +64,7 @@ RSpec.describe Api::V2::Filters::StatusesController, type: :controller do
|
|||
end
|
||||
|
||||
describe 'GET #show' do
|
||||
let(:scopes) { 'read:filters' }
|
||||
let(:scopes) { 'read:filters' }
|
||||
let!(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) }
|
||||
|
||||
before do
|
||||
|
@ -90,7 +90,7 @@ RSpec.describe Api::V2::Filters::StatusesController, type: :controller do
|
|||
end
|
||||
|
||||
describe 'DELETE #destroy' do
|
||||
let(:scopes) { 'write:filters' }
|
||||
let(:scopes) { 'write:filters' }
|
||||
let(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) }
|
||||
|
||||
before do
|
||||
|
|
|
@ -339,11 +339,11 @@ RSpec.describe Auth::SessionsController, type: :controller do
|
|||
external_id: public_key_credential.id,
|
||||
public_key: public_key_credential.public_key,
|
||||
sign_count: '1000'
|
||||
)
|
||||
)
|
||||
user.webauthn_credentials.take
|
||||
end
|
||||
|
||||
let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http' }://#{Rails.configuration.x.web_domain}" }
|
||||
let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http'}://#{Rails.configuration.x.web_domain}" }
|
||||
|
||||
let(:fake_client) { WebAuthn::FakeClient.new(domain) }
|
||||
|
||||
|
@ -400,7 +400,7 @@ RSpec.describe Auth::SessionsController, type: :controller do
|
|||
|
||||
describe 'GET #webauthn_options' do
|
||||
context 'with WebAuthn and OTP enabled as second factor' do
|
||||
let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http' }://#{Rails.configuration.x.web_domain}" }
|
||||
let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http'}://#{Rails.configuration.x.web_domain}" }
|
||||
|
||||
let(:fake_client) { WebAuthn::FakeClient.new(domain) }
|
||||
|
||||
|
|
|
@ -99,7 +99,6 @@ describe AuthorizeInteractionsController do
|
|||
allow(ResolveAccountService).to receive(:new).and_return(service)
|
||||
allow(service).to receive(:call).with('user@hostname').and_return(target_account)
|
||||
|
||||
|
||||
post :create, params: { acct: 'acct:user@hostname' }
|
||||
|
||||
expect(account.following?(target_account)).to be true
|
||||
|
|
|
@ -73,7 +73,7 @@ describe Settings::ApplicationsController do
|
|||
name: 'My New App',
|
||||
redirect_uri: 'urn:ietf:wg:oauth:2.0:oob',
|
||||
website: 'http://google.com',
|
||||
scopes: [ 'read', 'write', 'follow' ]
|
||||
scopes: ['read', 'write', 'follow']
|
||||
}
|
||||
}
|
||||
response
|
||||
|
|
|
@ -5,7 +5,6 @@ require 'rails_helper'
|
|||
describe Settings::TwoFactorAuthentication::ConfirmationsController do
|
||||
render_views
|
||||
|
||||
|
||||
shared_examples 'renders :new' do
|
||||
it 'renders the new view' do
|
||||
subject
|
||||
|
|
|
@ -7,7 +7,7 @@ describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do
|
|||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http' }://#{Rails.configuration.x.web_domain}" }
|
||||
let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http'}://#{Rails.configuration.x.web_domain}" }
|
||||
let(:fake_client) { WebAuthn::FakeClient.new(domain) }
|
||||
|
||||
def add_webauthn_credential(user)
|
||||
|
|
|
@ -9,12 +9,12 @@ describe WellKnown::HostMetaController, type: :controller do
|
|||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(response.media_type).to eq 'application/xrd+xml'
|
||||
expect(response.body).to eq <<XML
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
|
||||
<Link rel="lrdd" template="https://cb6e6126.ngrok.io/.well-known/webfinger?resource={uri}"/>
|
||||
</XRD>
|
||||
XML
|
||||
expect(response.body).to eq <<~XML
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
|
||||
<Link rel="lrdd" template="https://cb6e6126.ngrok.io/.well-known/webfinger?resource={uri}"/>
|
||||
</XRD>
|
||||
XML
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Fabricator(:custom_filter_keyword) do
|
||||
custom_filter
|
||||
keyword 'discourse'
|
||||
keyword 'discourse'
|
||||
end
|
||||
|
|
|
@ -3,4 +3,4 @@ Fabricator(:ip_block) do
|
|||
severity ""
|
||||
expires_at "2020-10-08 22:20:37"
|
||||
comment "MyText"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Fabricator(:poll_vote) do
|
||||
account
|
||||
poll
|
||||
choice 0
|
||||
choice 0
|
||||
end
|
||||
|
|
|
@ -4,4 +4,4 @@ Fabricator(:status_edit) do
|
|||
text "MyText"
|
||||
spoiler_text "MyText"
|
||||
media_attachments_changed false
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,3 +1,2 @@
|
|||
Fabricator(:system_key) do
|
||||
|
||||
end
|
||||
|
|
|
@ -408,7 +408,6 @@ RSpec.describe ActivityPub::Activity::Create do
|
|||
end
|
||||
end
|
||||
|
||||
|
||||
context 'with media attachments with long description' do
|
||||
let(:object_json) do
|
||||
{
|
||||
|
|
|
@ -20,7 +20,7 @@ describe Extractor do
|
|||
text = '@screen_name'
|
||||
extracted = Extractor.extract_mentions_or_lists_with_indices(text)
|
||||
expect(extracted).to eq [
|
||||
{ screen_name: 'screen_name', indices: [ 0, 12 ] }
|
||||
{ screen_name: 'screen_name', indices: [0, 12] }
|
||||
]
|
||||
end
|
||||
|
||||
|
@ -44,19 +44,19 @@ describe Extractor do
|
|||
it 'does not exclude normal hash text before ://' do
|
||||
text = '#hashtag://'
|
||||
extracted = Extractor.extract_hashtags_with_indices(text)
|
||||
expect(extracted).to eq [ { hashtag: 'hashtag', indices: [ 0, 8 ] } ]
|
||||
expect(extracted).to eq [{ hashtag: 'hashtag', indices: [0, 8] }]
|
||||
end
|
||||
|
||||
it 'excludes http://' do
|
||||
text = '#hashtaghttp://'
|
||||
extracted = Extractor.extract_hashtags_with_indices(text)
|
||||
expect(extracted).to eq [ { hashtag: 'hashtag', indices: [ 0, 8 ] } ]
|
||||
expect(extracted).to eq [{ hashtag: 'hashtag', indices: [0, 8] }]
|
||||
end
|
||||
|
||||
it 'excludes https://' do
|
||||
text = '#hashtaghttps://'
|
||||
extracted = Extractor.extract_hashtags_with_indices(text)
|
||||
expect(extracted).to eq [ { hashtag: 'hashtag', indices: [ 0, 8 ] } ]
|
||||
expect(extracted).to eq [{ hashtag: 'hashtag', indices: [0, 8] }]
|
||||
end
|
||||
|
||||
it 'yields hashtags if a block is given' do
|
||||
|
|
|
@ -4,7 +4,7 @@ require 'rails_helper'
|
|||
|
||||
describe FastIpMap do
|
||||
describe '#include?' do
|
||||
subject { described_class.new([IPAddr.new('20.4.0.0/16'), IPAddr.new('145.22.30.0/24'), IPAddr.new('189.45.86.3')])}
|
||||
subject { described_class.new([IPAddr.new('20.4.0.0/16'), IPAddr.new('145.22.30.0/24'), IPAddr.new('189.45.86.3')]) }
|
||||
|
||||
it 'returns true for an exact match' do
|
||||
expect(subject.include?(IPAddr.new('189.45.86.3'))).to be true
|
||||
|
|
|
@ -39,17 +39,17 @@ RSpec.describe LinkDetailsExtractor do
|
|||
let(:original_url) { 'https://example.com/page.html' }
|
||||
|
||||
context 'and is wrapped in CDATA tags' do
|
||||
let(:html) { <<-HTML }
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="application/ld+json">
|
||||
//<![CDATA[
|
||||
{"@context":"http://schema.org","@type":"NewsArticle","mainEntityOfPage":"https://example.com/page.html","headline":"Foo","datePublished":"2022-01-31T19:53:00+00:00","url":"https://example.com/page.html","description":"Bar","author":{"@type":"Person","name":"Hoge"},"publisher":{"@type":"Organization","name":"Baz"}}
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
</html>
|
||||
let(:html) { <<~HTML }
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="application/ld+json">
|
||||
//<![CDATA[
|
||||
{"@context":"http://schema.org","@type":"NewsArticle","mainEntityOfPage":"https://example.com/page.html","headline":"Foo","datePublished":"2022-01-31T19:53:00+00:00","url":"https://example.com/page.html","description":"Bar","author":{"@type":"Person","name":"Hoge"},"publisher":{"@type":"Organization","name":"Baz"}}
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
</html>
|
||||
HTML
|
||||
|
||||
describe '#title' do
|
||||
|
@ -78,57 +78,57 @@ RSpec.describe LinkDetailsExtractor do
|
|||
end
|
||||
|
||||
context 'but the first tag is invalid JSON' do
|
||||
let(:html) { <<-HTML }
|
||||
<!doctype html>
|
||||
<html>
|
||||
<body>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context":"https://schema.org",
|
||||
"@type":"ItemList",
|
||||
"url":"https://example.com/page.html",
|
||||
"name":"Foo",
|
||||
"description":"Bar"
|
||||
},
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement":[
|
||||
{
|
||||
"@type":"ListItem",
|
||||
"position":1,
|
||||
"item":{
|
||||
"@id":"https://www.example.com",
|
||||
"name":"Baz"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context":"https://schema.org",
|
||||
"@type":"NewsArticle",
|
||||
"mainEntityOfPage": {
|
||||
"@type":"WebPage",
|
||||
"@id": "http://example.com/page.html"
|
||||
},
|
||||
"headline": "Foo",
|
||||
"description": "Bar",
|
||||
"datePublished": "2022-01-31T19:46:00+00:00",
|
||||
"author": {
|
||||
"@type": "Organization",
|
||||
"name": "Hoge"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "NewsMediaOrganization",
|
||||
"name":"Baz",
|
||||
"url":"https://example.com/"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
let(:html) { <<~HTML }
|
||||
<!doctype html>
|
||||
<html>
|
||||
<body>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context":"https://schema.org",
|
||||
"@type":"ItemList",
|
||||
"url":"https://example.com/page.html",
|
||||
"name":"Foo",
|
||||
"description":"Bar"
|
||||
},
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement":[
|
||||
{
|
||||
"@type":"ListItem",
|
||||
"position":1,
|
||||
"item":{
|
||||
"@id":"https://www.example.com",
|
||||
"name":"Baz"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context":"https://schema.org",
|
||||
"@type":"NewsArticle",
|
||||
"mainEntityOfPage": {
|
||||
"@type":"WebPage",
|
||||
"@id": "http://example.com/page.html"
|
||||
},
|
||||
"headline": "Foo",
|
||||
"description": "Bar",
|
||||
"datePublished": "2022-01-31T19:46:00+00:00",
|
||||
"author": {
|
||||
"@type": "Organization",
|
||||
"name": "Hoge"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "NewsMediaOrganization",
|
||||
"name":"Baz",
|
||||
"url":"https://example.com/"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
HTML
|
||||
|
||||
describe '#title' do
|
||||
|
|
|
@ -97,7 +97,7 @@ RSpec.describe Account::Field, type: :model do
|
|||
expect(subject.verifiable?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
context 'for text which is blank' do
|
||||
let(:value) { '' }
|
||||
|
||||
|
@ -149,7 +149,7 @@ RSpec.describe Account::Field, type: :model do
|
|||
expect(subject.verifiable?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
context 'for text which is blank' do
|
||||
let(:value) { '' }
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe AccountAlias, type: :model do
|
||||
|
||||
end
|
||||
|
|
|
@ -16,16 +16,15 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
|
|||
context 'when widening a policy' do
|
||||
let!(:account_statuses_cleanup_policy) do
|
||||
Fabricate(:account_statuses_cleanup_policy,
|
||||
account: account,
|
||||
keep_direct: true,
|
||||
keep_pinned: true,
|
||||
keep_polls: true,
|
||||
keep_media: true,
|
||||
keep_self_fav: true,
|
||||
keep_self_bookmark: true,
|
||||
min_favs: 1,
|
||||
min_reblogs: 1
|
||||
)
|
||||
account: account,
|
||||
keep_direct: true,
|
||||
keep_pinned: true,
|
||||
keep_polls: true,
|
||||
keep_media: true,
|
||||
keep_self_fav: true,
|
||||
keep_self_bookmark: true,
|
||||
min_favs: 1,
|
||||
min_reblogs: 1)
|
||||
end
|
||||
|
||||
before do
|
||||
|
@ -96,16 +95,15 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
|
|||
context 'when narrowing a policy' do
|
||||
let!(:account_statuses_cleanup_policy) do
|
||||
Fabricate(:account_statuses_cleanup_policy,
|
||||
account: account,
|
||||
keep_direct: false,
|
||||
keep_pinned: false,
|
||||
keep_polls: false,
|
||||
keep_media: false,
|
||||
keep_self_fav: false,
|
||||
keep_self_bookmark: false,
|
||||
min_favs: nil,
|
||||
min_reblogs: nil
|
||||
)
|
||||
account: account,
|
||||
keep_direct: false,
|
||||
keep_pinned: false,
|
||||
keep_polls: false,
|
||||
keep_media: false,
|
||||
keep_self_fav: false,
|
||||
keep_self_bookmark: false,
|
||||
min_favs: nil,
|
||||
min_reblogs: nil)
|
||||
end
|
||||
|
||||
it 'does not unnecessarily invalidate last_inspected' do
|
||||
|
@ -232,7 +230,7 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
|
|||
end
|
||||
|
||||
describe '#compute_cutoff_id' do
|
||||
let!(:unrelated_status) { Fabricate(:status, created_at: 3.years.ago) }
|
||||
let!(:unrelated_status) { Fabricate(:status, created_at: 3.years.ago) }
|
||||
let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) }
|
||||
|
||||
subject { account_statuses_cleanup_policy.compute_cutoff_id }
|
||||
|
|
|
@ -400,7 +400,7 @@ describe AccountInteractions do
|
|||
subject { account.domain_blocking?(domain) }
|
||||
|
||||
context 'blocking the domain' do
|
||||
it' returns true' do
|
||||
it ' returns true' do
|
||||
account_domain_block = Fabricate(:account_domain_block, domain: domain)
|
||||
account.domain_blocks << account_domain_block
|
||||
is_expected.to be true
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Device, type: :model do
|
||||
|
||||
end
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe EncryptedMessage, type: :model do
|
||||
|
||||
end
|
||||
|
|
|
@ -3,7 +3,7 @@ require 'rails_helper'
|
|||
describe Export do
|
||||
let(:account) { Fabricate(:account) }
|
||||
let(:target_accounts) do
|
||||
[ {}, { username: 'one', domain: 'local.host' } ].map(&method(:Fabricate).curry(2).call(:account))
|
||||
[{}, { username: 'one', domain: 'local.host' }].map(&method(:Fabricate).curry(2).call(:account))
|
||||
end
|
||||
|
||||
describe 'to_csv' do
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe LoginActivity, type: :model do
|
||||
|
||||
end
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe OneTimeKey, type: :model do
|
||||
|
||||
end
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe SystemKey, type: :model do
|
||||
|
||||
end
|
||||
|
|
|
@ -76,7 +76,7 @@ RSpec.describe Trends::Statuses do
|
|||
before do
|
||||
13.times { reblog(status1, today) }
|
||||
13.times { reblog(status2, today) }
|
||||
4.times { reblog(status3, today) }
|
||||
4.times { reblog(status3, today) }
|
||||
end
|
||||
|
||||
context do
|
||||
|
|
|
@ -58,7 +58,7 @@ RSpec.describe UserRole, type: :model do
|
|||
end
|
||||
|
||||
describe '#permissions_as_keys=' do
|
||||
let(:input) { }
|
||||
let(:input) {}
|
||||
|
||||
before do
|
||||
subject.permissions_as_keys = input
|
||||
|
|
|
@ -5,99 +5,99 @@ require 'rails_helper'
|
|||
describe 'API routes' do
|
||||
describe 'Credentials routes' do
|
||||
it 'routes to verify credentials' do
|
||||
expect(get('/api/v1/accounts/verify_credentials')).
|
||||
to route_to('api/v1/accounts/credentials#show')
|
||||
expect(get('/api/v1/accounts/verify_credentials'))
|
||||
.to route_to('api/v1/accounts/credentials#show')
|
||||
end
|
||||
|
||||
it 'routes to update credentials' do
|
||||
expect(patch('/api/v1/accounts/update_credentials')).
|
||||
to route_to('api/v1/accounts/credentials#update')
|
||||
expect(patch('/api/v1/accounts/update_credentials'))
|
||||
.to route_to('api/v1/accounts/credentials#update')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Account routes' do
|
||||
it 'routes to statuses' do
|
||||
expect(get('/api/v1/accounts/user/statuses')).
|
||||
to route_to('api/v1/accounts/statuses#index', account_id: 'user')
|
||||
expect(get('/api/v1/accounts/user/statuses'))
|
||||
.to route_to('api/v1/accounts/statuses#index', account_id: 'user')
|
||||
end
|
||||
|
||||
it 'routes to followers' do
|
||||
expect(get('/api/v1/accounts/user/followers')).
|
||||
to route_to('api/v1/accounts/follower_accounts#index', account_id: 'user')
|
||||
expect(get('/api/v1/accounts/user/followers'))
|
||||
.to route_to('api/v1/accounts/follower_accounts#index', account_id: 'user')
|
||||
end
|
||||
|
||||
it 'routes to following' do
|
||||
expect(get('/api/v1/accounts/user/following')).
|
||||
to route_to('api/v1/accounts/following_accounts#index', account_id: 'user')
|
||||
expect(get('/api/v1/accounts/user/following'))
|
||||
.to route_to('api/v1/accounts/following_accounts#index', account_id: 'user')
|
||||
end
|
||||
|
||||
it 'routes to search' do
|
||||
expect(get('/api/v1/accounts/search')).
|
||||
to route_to('api/v1/accounts/search#show')
|
||||
expect(get('/api/v1/accounts/search'))
|
||||
.to route_to('api/v1/accounts/search#show')
|
||||
end
|
||||
|
||||
it 'routes to relationships' do
|
||||
expect(get('/api/v1/accounts/relationships')).
|
||||
to route_to('api/v1/accounts/relationships#index')
|
||||
expect(get('/api/v1/accounts/relationships'))
|
||||
.to route_to('api/v1/accounts/relationships#index')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Statuses routes' do
|
||||
it 'routes reblogged_by' do
|
||||
expect(get('/api/v1/statuses/123/reblogged_by')).
|
||||
to route_to('api/v1/statuses/reblogged_by_accounts#index', status_id: '123')
|
||||
expect(get('/api/v1/statuses/123/reblogged_by'))
|
||||
.to route_to('api/v1/statuses/reblogged_by_accounts#index', status_id: '123')
|
||||
end
|
||||
|
||||
it 'routes favourited_by' do
|
||||
expect(get('/api/v1/statuses/123/favourited_by')).
|
||||
to route_to('api/v1/statuses/favourited_by_accounts#index', status_id: '123')
|
||||
expect(get('/api/v1/statuses/123/favourited_by'))
|
||||
.to route_to('api/v1/statuses/favourited_by_accounts#index', status_id: '123')
|
||||
end
|
||||
|
||||
it 'routes reblog' do
|
||||
expect(post('/api/v1/statuses/123/reblog')).
|
||||
to route_to('api/v1/statuses/reblogs#create', status_id: '123')
|
||||
expect(post('/api/v1/statuses/123/reblog'))
|
||||
.to route_to('api/v1/statuses/reblogs#create', status_id: '123')
|
||||
end
|
||||
|
||||
it 'routes unreblog' do
|
||||
expect(post('/api/v1/statuses/123/unreblog')).
|
||||
to route_to('api/v1/statuses/reblogs#destroy', status_id: '123')
|
||||
expect(post('/api/v1/statuses/123/unreblog'))
|
||||
.to route_to('api/v1/statuses/reblogs#destroy', status_id: '123')
|
||||
end
|
||||
|
||||
it 'routes favourite' do
|
||||
expect(post('/api/v1/statuses/123/favourite')).
|
||||
to route_to('api/v1/statuses/favourites#create', status_id: '123')
|
||||
expect(post('/api/v1/statuses/123/favourite'))
|
||||
.to route_to('api/v1/statuses/favourites#create', status_id: '123')
|
||||
end
|
||||
|
||||
it 'routes unfavourite' do
|
||||
expect(post('/api/v1/statuses/123/unfavourite')).
|
||||
to route_to('api/v1/statuses/favourites#destroy', status_id: '123')
|
||||
expect(post('/api/v1/statuses/123/unfavourite'))
|
||||
.to route_to('api/v1/statuses/favourites#destroy', status_id: '123')
|
||||
end
|
||||
|
||||
it 'routes mute' do
|
||||
expect(post('/api/v1/statuses/123/mute')).
|
||||
to route_to('api/v1/statuses/mutes#create', status_id: '123')
|
||||
expect(post('/api/v1/statuses/123/mute'))
|
||||
.to route_to('api/v1/statuses/mutes#create', status_id: '123')
|
||||
end
|
||||
|
||||
it 'routes unmute' do
|
||||
expect(post('/api/v1/statuses/123/unmute')).
|
||||
to route_to('api/v1/statuses/mutes#destroy', status_id: '123')
|
||||
expect(post('/api/v1/statuses/123/unmute'))
|
||||
.to route_to('api/v1/statuses/mutes#destroy', status_id: '123')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Timeline routes' do
|
||||
it 'routes to home timeline' do
|
||||
expect(get('/api/v1/timelines/home')).
|
||||
to route_to('api/v1/timelines/home#show')
|
||||
expect(get('/api/v1/timelines/home'))
|
||||
.to route_to('api/v1/timelines/home#show')
|
||||
end
|
||||
|
||||
it 'routes to public timeline' do
|
||||
expect(get('/api/v1/timelines/public')).
|
||||
to route_to('api/v1/timelines/public#show')
|
||||
expect(get('/api/v1/timelines/public'))
|
||||
.to route_to('api/v1/timelines/public#show')
|
||||
end
|
||||
|
||||
it 'routes to tag timeline' do
|
||||
expect(get('/api/v1/timelines/tag/test')).
|
||||
to route_to('api/v1/timelines/tag#show', id: 'test')
|
||||
expect(get('/api/v1/timelines/tag/test'))
|
||||
.to route_to('api/v1/timelines/tag#show', id: 'test')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,14 +2,14 @@ require 'rails_helper'
|
|||
|
||||
describe 'the host-meta route' do
|
||||
it 'routes to correct place with xml format' do
|
||||
expect(get('/.well-known/host-meta')).
|
||||
to route_to('well_known/host_meta#show', format: 'xml')
|
||||
expect(get('/.well-known/host-meta'))
|
||||
.to route_to('well_known/host_meta#show', format: 'xml')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'the webfinger route' do
|
||||
it 'routes to correct place with json format' do
|
||||
expect(get('/.well-known/webfinger')).
|
||||
to route_to('well_known/webfinger#show')
|
||||
expect(get('/.well-known/webfinger'))
|
||||
.to route_to('well_known/webfinger#show')
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,7 +5,7 @@ require 'rails_helper'
|
|||
describe REST::AccountSerializer do
|
||||
let(:role) { Fabricate(:user_role, name: 'Role', highlighted: true) }
|
||||
let(:user) { Fabricate(:user, role: role) }
|
||||
let(:account) { user.account}
|
||||
let(:account) { user.account }
|
||||
|
||||
subject { JSON.parse(ActiveModelSerializers::SerializableResource.new(account, serializer: REST::AccountSerializer).to_json) }
|
||||
|
||||
|
|
|
@ -42,8 +42,8 @@ describe AccountStatusesCleanupService, type: :service do
|
|||
|
||||
context 'when called repeatedly with a budget of 2' do
|
||||
it 'reports 2 then 1 deleted statuses' do
|
||||
expect(subject.call(account_policy, 2)).to eq 2
|
||||
expect(subject.call(account_policy, 2)).to eq 1
|
||||
expect(subject.call(account_policy, 2)).to eq 2
|
||||
expect(subject.call(account_policy, 2)).to eq 1
|
||||
end
|
||||
|
||||
it 'actually deletes the statuses in the expected order' do
|
||||
|
|
|
@ -298,7 +298,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
|
|||
first: {
|
||||
type: 'CollectionPage',
|
||||
partOf: "https://foo.bar/@foo/#{i}/replies",
|
||||
items: ["https://foo.bar/@foo/#{i+1}"],
|
||||
items: ["https://foo.bar/@foo/#{i + 1}"],
|
||||
},
|
||||
},
|
||||
attributedTo: ActivityPub::TagManager.instance.uri_for(sender),
|
||||
|
|
|
@ -172,10 +172,10 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
|
|||
{
|
||||
type: 'Mention',
|
||||
href: "https://foo.test/users/#{i + 1}",
|
||||
name: "@user#{i + 1 }",
|
||||
name: "@user#{i + 1}",
|
||||
}
|
||||
],
|
||||
to: [ 'as:Public', "https://foo.test/users/#{i + 1}" ]
|
||||
to: ['as:Public', "https://foo.test/users/#{i + 1}"]
|
||||
}.with_indifferent_access
|
||||
featured_json = {
|
||||
'@context': ['https://www.w3.org/ns/activitystreams'],
|
||||
|
|
|
@ -95,11 +95,11 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
|
|||
context 'when receiving a fabricated status' do
|
||||
let!(:actor) do
|
||||
Fabricate(:account,
|
||||
username: 'bob',
|
||||
domain: 'example.com',
|
||||
uri: 'https://example.com/users/bob',
|
||||
public_key: "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuuYyoyfsRkYnXRotMsId\nW3euBDDfiv9oVqOxUVC7bhel8KednIMrMCRWFAkgJhbrlzbIkjVr68o1MP9qLcn7\nCmH/BXHp7yhuFTr4byjdJKpwB+/i2jNEsvDH5jR8WTAeTCe0x/QHg21V3F7dSI5m\nCCZ/1dSIyOXLRTWVlfDlm3rE4ntlCo+US3/7oSWbg/4/4qEnt1HC32kvklgScxua\n4LR5ATdoXa5bFoopPWhul7MJ6NyWCyQyScUuGdlj8EN4kmKQJvphKHrI9fvhgOuG\nTvhTR1S5InA4azSSchY0tXEEw/VNxraeX0KPjbgr6DPcwhPd/m0nhVDq0zVyVBBD\nMwIDAQAB\n-----END PUBLIC KEY-----\n",
|
||||
private_key: nil)
|
||||
username: 'bob',
|
||||
domain: 'example.com',
|
||||
uri: 'https://example.com/users/bob',
|
||||
public_key: "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuuYyoyfsRkYnXRotMsId\nW3euBDDfiv9oVqOxUVC7bhel8KednIMrMCRWFAkgJhbrlzbIkjVr68o1MP9qLcn7\nCmH/BXHp7yhuFTr4byjdJKpwB+/i2jNEsvDH5jR8WTAeTCe0x/QHg21V3F7dSI5m\nCCZ/1dSIyOXLRTWVlfDlm3rE4ntlCo+US3/7oSWbg/4/4qEnt1HC32kvklgScxua\n4LR5ATdoXa5bFoopPWhul7MJ6NyWCyQyScUuGdlj8EN4kmKQJvphKHrI9fvhgOuG\nTvhTR1S5InA4azSSchY0tXEEw/VNxraeX0KPjbgr6DPcwhPd/m0nhVDq0zVyVBBD\nMwIDAQAB\n-----END PUBLIC KEY-----\n",
|
||||
private_key: nil)
|
||||
end
|
||||
|
||||
let(:payload) do
|
||||
|
@ -107,7 +107,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
|
|||
'@context': [
|
||||
'https://www.w3.org/ns/activitystreams',
|
||||
nil,
|
||||
{'object': 'https://www.w3.org/ns/activitystreams#object'}
|
||||
{ 'object': 'https://www.w3.org/ns/activitystreams#object' }
|
||||
],
|
||||
'id': 'https://example.com/users/bob/fake-status/activity',
|
||||
'type': 'Create',
|
||||
|
|
|
@ -104,20 +104,19 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
|
|||
end
|
||||
|
||||
context 'when the status has not been explicitly edited and features a poll' do
|
||||
let(:account) { Fabricate(:account, domain: 'example.com') }
|
||||
let(:account) { Fabricate(:account, domain: 'example.com') }
|
||||
let!(:expiration) { 10.days.from_now.utc }
|
||||
let!(:status) do
|
||||
Fabricate(:status,
|
||||
text: 'Hello world',
|
||||
account: account,
|
||||
poll_attributes: {
|
||||
options: %w(Foo Bar),
|
||||
account: account,
|
||||
multiple: false,
|
||||
hide_totals: false,
|
||||
expires_at: expiration
|
||||
}
|
||||
)
|
||||
text: 'Hello world',
|
||||
account: account,
|
||||
poll_attributes: {
|
||||
options: %w(Foo Bar),
|
||||
account: account,
|
||||
multiple: false,
|
||||
hide_totals: false,
|
||||
expires_at: expiration
|
||||
})
|
||||
end
|
||||
|
||||
let(:payload) do
|
||||
|
@ -156,20 +155,19 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
|
|||
end
|
||||
|
||||
context 'when the status changes a poll despite being not explicitly marked as updated' do
|
||||
let(:account) { Fabricate(:account, domain: 'example.com') }
|
||||
let(:account) { Fabricate(:account, domain: 'example.com') }
|
||||
let!(:expiration) { 10.days.from_now.utc }
|
||||
let!(:status) do
|
||||
Fabricate(:status,
|
||||
text: 'Hello world',
|
||||
account: account,
|
||||
poll_attributes: {
|
||||
options: %w(Foo Bar),
|
||||
account: account,
|
||||
multiple: false,
|
||||
hide_totals: false,
|
||||
expires_at: expiration
|
||||
}
|
||||
)
|
||||
text: 'Hello world',
|
||||
account: account,
|
||||
poll_attributes: {
|
||||
options: %w(Foo Bar),
|
||||
account: account,
|
||||
multiple: false,
|
||||
hide_totals: false,
|
||||
expires_at: expiration
|
||||
})
|
||||
end
|
||||
|
||||
let(:payload) do
|
||||
|
|
|
@ -32,6 +32,5 @@ RSpec.describe BootstrapTimelineService, type: :service do
|
|||
expect(service).to_not have_received(:call)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -151,7 +151,6 @@ describe FetchOEmbedService, type: :service do
|
|||
expect(subject.format).to eq :json
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context 'when endpoint is cached' do
|
||||
|
|
|
@ -178,7 +178,7 @@ RSpec.describe ImportService, type: :service do
|
|||
context 'utf-8 encoded domains' do
|
||||
subject { ImportService.new }
|
||||
|
||||
let!(:nare) { Fabricate(:account, username: 'nare', domain: 'թութ.հայ', locked: false, protocol: :activitypub, inbox_url: 'https://թութ.հայ/inbox') }
|
||||
let!(:nare) { Fabricate(:account, username: 'nare', domain: 'թութ.հայ', locked: false, protocol: :activitypub, inbox_url: 'https://թութ.հայ/inbox') }
|
||||
|
||||
# Make sure to not actually go to the remote server
|
||||
before do
|
||||
|
@ -189,7 +189,7 @@ RSpec.describe ImportService, type: :service do
|
|||
let(:import) { Import.create(account: account, type: 'following', data: csv) }
|
||||
|
||||
it 'follows the listed account' do
|
||||
expect(account.follow_requests.count).to eq 0
|
||||
expect(account.follow_requests.count).to eq 0
|
||||
subject.call(import)
|
||||
expect(account.follow_requests.count).to eq 1
|
||||
end
|
||||
|
|
|
@ -7,7 +7,7 @@ RSpec.describe RemoveFromFollowersService, type: :service do
|
|||
|
||||
describe 'local' do
|
||||
let(:sender) { Fabricate(:account, username: 'alice') }
|
||||
|
||||
|
||||
before do
|
||||
Follow.create(account: sender, target_account: bob)
|
||||
subject.call(bob, sender)
|
||||
|
|
|
@ -37,29 +37,29 @@ RSpec.describe RemoveStatusService, type: :service do
|
|||
it 'sends Delete activity to followers' do
|
||||
subject.call(@status)
|
||||
expect(a_request(:post, 'http://example.com/inbox').with(
|
||||
body: hash_including({
|
||||
'type' => 'Delete',
|
||||
'object' => {
|
||||
'type' => 'Tombstone',
|
||||
'id' => ActivityPub::TagManager.instance.uri_for(@status),
|
||||
'atomUri' => OStatus::TagManager.instance.uri_for(@status),
|
||||
},
|
||||
})
|
||||
)).to have_been_made.once
|
||||
body: hash_including({
|
||||
'type' => 'Delete',
|
||||
'object' => {
|
||||
'type' => 'Tombstone',
|
||||
'id' => ActivityPub::TagManager.instance.uri_for(@status),
|
||||
'atomUri' => OStatus::TagManager.instance.uri_for(@status),
|
||||
},
|
||||
})
|
||||
)).to have_been_made.once
|
||||
end
|
||||
|
||||
it 'sends Delete activity to rebloggers' do
|
||||
subject.call(@status)
|
||||
expect(a_request(:post, 'http://example2.com/inbox').with(
|
||||
body: hash_including({
|
||||
'type' => 'Delete',
|
||||
'object' => {
|
||||
'type' => 'Tombstone',
|
||||
'id' => ActivityPub::TagManager.instance.uri_for(@status),
|
||||
'atomUri' => OStatus::TagManager.instance.uri_for(@status),
|
||||
},
|
||||
})
|
||||
)).to have_been_made.once
|
||||
body: hash_including({
|
||||
'type' => 'Delete',
|
||||
'object' => {
|
||||
'type' => 'Tombstone',
|
||||
'id' => ActivityPub::TagManager.instance.uri_for(@status),
|
||||
'atomUri' => OStatus::TagManager.instance.uri_for(@status),
|
||||
},
|
||||
})
|
||||
)).to have_been_made.once
|
||||
end
|
||||
|
||||
it 'remove status from notifications' do
|
||||
|
@ -78,14 +78,14 @@ RSpec.describe RemoveStatusService, type: :service do
|
|||
it 'sends Undo activity to followers' do
|
||||
subject.call(@status)
|
||||
expect(a_request(:post, 'http://example.com/inbox').with(
|
||||
body: hash_including({
|
||||
'type' => 'Undo',
|
||||
'object' => hash_including({
|
||||
'type' => 'Announce',
|
||||
'object' => ActivityPub::TagManager.instance.uri_for(@original_status),
|
||||
}),
|
||||
})
|
||||
)).to have_been_made.once
|
||||
body: hash_including({
|
||||
'type' => 'Undo',
|
||||
'object' => hash_including({
|
||||
'type' => 'Announce',
|
||||
'object' => ActivityPub::TagManager.instance.uri_for(@original_status),
|
||||
}),
|
||||
})
|
||||
)).to have_been_made.once
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -98,14 +98,14 @@ RSpec.describe RemoveStatusService, type: :service do
|
|||
it 'sends Undo activity to followers' do
|
||||
subject.call(@status)
|
||||
expect(a_request(:post, 'http://example.com/inbox').with(
|
||||
body: hash_including({
|
||||
'type' => 'Undo',
|
||||
'object' => hash_including({
|
||||
'type' => 'Announce',
|
||||
'object' => ActivityPub::TagManager.instance.uri_for(@original_status),
|
||||
}),
|
||||
})
|
||||
)).to have_been_made.once
|
||||
body: hash_including({
|
||||
'type' => 'Undo',
|
||||
'object' => hash_including({
|
||||
'type' => 'Announce',
|
||||
'object' => ActivityPub::TagManager.instance.uri_for(@original_status),
|
||||
}),
|
||||
})
|
||||
)).to have_been_made.once
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -190,7 +190,7 @@ RSpec.describe ResolveAccountService, type: :service do
|
|||
|
||||
context 'with an already-known acct: URI changing ActivityPub id' do
|
||||
let!(:old_account) { Fabricate(:account, username: 'foo', domain: 'ap.example.com', uri: 'https://old.example.com/users/foo', last_webfingered_at: nil) }
|
||||
let!(:status) { Fabricate(:status, account: old_account, text: 'foo') }
|
||||
let!(:status) { Fabricate(:status, account: old_account, text: 'foo') }
|
||||
|
||||
it 'returns new remote account' do
|
||||
account = subject.call('foo@ap.example.com')
|
||||
|
|
|
@ -133,7 +133,7 @@ describe ResolveURLService, type: :service do
|
|||
let!(:status) { Fabricate(:status, account: poster, visibility: :public) }
|
||||
let(:url) { 'https://link.to/foobar' }
|
||||
let(:status_url) { ActivityPub::TagManager.instance.url_for(status) }
|
||||
let(:uri) { ActivityPub::TagManager.instance.uri_for(status) }
|
||||
let(:uri) { ActivityPub::TagManager.instance.uri_for(status) }
|
||||
|
||||
before do
|
||||
stub_request(:get, url).to_return(status: 302, headers: { 'Location' => status_url })
|
||||
|
|
|
@ -111,7 +111,7 @@ RSpec.describe UpdateStatusService, type: :service do
|
|||
|
||||
context 'when poll changes' do
|
||||
let(:account) { Fabricate(:account) }
|
||||
let!(:status) { Fabricate(:status, text: 'Foo', account: account, poll_attributes: {options: %w(Foo Bar), account: account, multiple: false, hide_totals: false, expires_at: 7.days.from_now }) }
|
||||
let!(:status) { Fabricate(:status, text: 'Foo', account: account, poll_attributes: { options: %w(Foo Bar), account: account, multiple: false, hide_totals: false, expires_at: 7.days.from_now }) }
|
||||
let!(:poll) { status.poll }
|
||||
let!(:voter) { Fabricate(:account) }
|
||||
|
||||
|
|
|
@ -20,8 +20,8 @@ module ProfileStories
|
|||
end
|
||||
|
||||
def with_alice_as_local_user
|
||||
@alice_bio = '@alice and @bob are fictional characters commonly used as'\
|
||||
'placeholder names in #cryptology, as well as #science and'\
|
||||
@alice_bio = '@alice and @bob are fictional characters commonly used as' \
|
||||
'placeholder names in #cryptology, as well as #science and' \
|
||||
'engineering 📖 literature. Not affiliated with @pepe.'
|
||||
|
||||
@alice = Fabricate(
|
||||
|
|
|
@ -15,7 +15,7 @@ describe NoteLengthValidator do
|
|||
end
|
||||
|
||||
it 'counts URLs as 23 characters flat' do
|
||||
text = ('a' * 476) + " http://#{'b' * 30}.com/example"
|
||||
text = ('a' * 476) + " http://#{'b' * 30}.com/example"
|
||||
account = double(note: text, errors: double(add: nil))
|
||||
|
||||
subject.validate_each(account, 'note', text)
|
||||
|
@ -23,7 +23,7 @@ describe NoteLengthValidator do
|
|||
end
|
||||
|
||||
it 'does not count non-autolinkable URLs as 23 characters flat' do
|
||||
text = ('a' * 476) + "http://#{'b' * 30}.com/example"
|
||||
text = ('a' * 476) + "http://#{'b' * 30}.com/example"
|
||||
account = double(note: text, errors: double(add: nil))
|
||||
|
||||
subject.validate_each(account, 'note', text)
|
||||
|
|
|
@ -11,10 +11,10 @@ RSpec.describe UnreservedUsernameValidator, type: :validator do
|
|||
|
||||
let(:validator) { described_class.new }
|
||||
let(:account) { double(username: username, errors: errors) }
|
||||
let(:errors ) { double(add: nil) }
|
||||
let(:errors) { double(add: nil) }
|
||||
|
||||
context '@username.blank?' do
|
||||
let(:username) { nil }
|
||||
let(:username) { nil }
|
||||
|
||||
it 'not calls errors.add' do
|
||||
expect(errors).not_to have_received(:add).with(:username, any_args)
|
||||
|
@ -22,7 +22,7 @@ RSpec.describe UnreservedUsernameValidator, type: :validator do
|
|||
end
|
||||
|
||||
context '!@username.blank?' do
|
||||
let(:username) { 'f' }
|
||||
let(:username) { 'f' }
|
||||
|
||||
context 'reserved_username?' do
|
||||
let(:reserved_username) { true }
|
||||
|
|
|
@ -34,7 +34,7 @@ describe ActivityPub::DistributionWorker do
|
|||
end
|
||||
|
||||
context 'with direct status' do
|
||||
let(:mentioned_account) { Fabricate(:account, protocol: :activitypub, inbox_url: 'https://foo.bar/inbox')}
|
||||
let(:mentioned_account) { Fabricate(:account, protocol: :activitypub, inbox_url: 'https://foo.bar/inbox') }
|
||||
|
||||
before do
|
||||
status.update(visibility: :direct)
|
||||
|
|
|
@ -3,7 +3,7 @@ require 'rails_helper'
|
|||
describe ActivityPub::MoveDistributionWorker do
|
||||
subject { described_class.new }
|
||||
|
||||
let(:migration) { Fabricate(:account_migration) }
|
||||
let(:migration) { Fabricate(:account_migration) }
|
||||
let(:follower) { Fabricate(:account, protocol: :activitypub, inbox_url: 'http://example.com') }
|
||||
let(:blocker) { Fabricate(:account, protocol: :activitypub, inbox_url: 'http://example2.com') }
|
||||
|
||||
|
@ -15,9 +15,9 @@ describe ActivityPub::MoveDistributionWorker do
|
|||
|
||||
it 'delivers to followers and known blockers' do
|
||||
expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [
|
||||
[kind_of(String), migration.account.id, 'http://example.com'],
|
||||
[kind_of(String), migration.account.id, 'http://example2.com']
|
||||
])
|
||||
[kind_of(String), migration.account.id, 'http://example.com'],
|
||||
[kind_of(String), migration.account.id, 'http://example2.com']
|
||||
])
|
||||
subject.perform(migration.id)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -82,7 +82,7 @@ describe Scheduler::AccountsStatusesCleanupScheduler do
|
|||
|
||||
describe '#get_budget' do
|
||||
context 'on a single thread' do
|
||||
let(:process_set_stub) { [ { 'concurrency' => 1, 'queues' => ['push', 'default'] } ] }
|
||||
let(:process_set_stub) { [{ 'concurrency' => 1, 'queues' => ['push', 'default'] }] }
|
||||
|
||||
it 'returns a low value' do
|
||||
expect(subject.compute_budget).to be < 10
|
||||
|
|
Loading…
Reference in a new issue