Files
mastodon/spec/fabricators/account_fabricator.rb
jcoffey-dev 4dfbb64241
Chromatic / Check for relevant changes (push) Canceled after 0s
Chromatic / Run Chromatic (push) Canceled after 0s
Import Mastodon v4.7.4
Snapshot of upstream tag v4.7.4 (commit d04059fc80be5cbba6b4dd5a8b94d63ffff09f2c) from
https://github.com/mastodon/mastodon, unmodified.
2026-10-29 08:11:58 -07:00

42 lines
1.8 KiB
Ruby

# frozen_string_literal: true
require_relative '../support/signing_keys_helpers'
Fabricator(:account) do
transient :suspended, :silenced, :legacy_keypair, :requested_deletion
username { sequence(:username) { |i| "#{Faker::Internet.user_name(separators: %w(_))}#{i}" } }
last_webfingered_at { Time.now.utc }
public_key { |attrs| attrs[:legacy_keypair] ? SigningKeysHelpers::PUBLIC_RSA_TEST_KEY : '' }
private_key { |attrs| attrs[:legacy_keypair] && attrs[:domain].nil? ? SigningKeysHelpers::PRIVATE_RSA_TEST_KEY : nil }
suspended_at { |attrs| attrs[:suspended] ? Time.now.utc : nil }
silenced_at { |attrs| attrs[:silenced] ? Time.now.utc : nil }
requested_deletion_at { |attrs| attrs[:requested_deletion] ? Time.now.utc : nil }
user { |attrs| attrs[:domain].nil? ? Fabricate.build(:user, account: nil) : nil }
uri { |attrs| attrs[:domain].nil? ? nil : "https://#{attrs[:domain]}/users/#{attrs[:username]}" }
discoverable true
indexable true
# This is not strictly needed but this avoids generating multiple keys
keypairs do |attrs|
uri = attrs[:uri] ? "#{attrs[:uri]}#main-key" : "https://#{attrs[:domain]}/users/#{attrs[:username]}#main-key" if attrs[:domain].present?
if attrs[:legacy_keypair] || attrs[:public_key].present?
[]
else
[
Keypair.new(
type: :rsa,
public_key: SigningKeysHelpers::PUBLIC_RSA_TEST_KEY,
private_key: attrs[:domain].blank? ? SigningKeysHelpers::PRIVATE_RSA_TEST_KEY : nil,
uri: uri,
local_fragment: attrs[:domain].nil? ? '#main-key' : nil
),
]
end
end
end
Fabricator(:remote_account, from: :account) do
domain 'example.com'
end