summaryrefslogtreecommitdiffstats
path: root/spec/lib
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2023-06-01 09:37:38 +0200
committerGitHub <noreply@github.com>2023-06-01 09:37:38 +0200
commite9385e93e9b4601c87d1f5d6b8ddfd815f7aedcb (patch)
treed90d8e6dc6fb998426e6090ed96b6b40eef97e4a /spec/lib
parentb922ad7a1b4bc8d968d0df2c7f307d4fec53435d (diff)
Add a confirmation screen when suspending a domain (#25144)
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/admin/metrics/measure/instance_accounts_measure_spec.rb40
-rw-r--r--spec/lib/admin/metrics/measure/instance_followers_measure_spec.rb42
-rw-r--r--spec/lib/admin/metrics/measure/instance_follows_measure_spec.rb42
-rw-r--r--spec/lib/admin/metrics/measure/instance_media_attachments_measure_spec.rb43
-rw-r--r--spec/lib/admin/metrics/measure/instance_reports_measure_spec.rb39
-rw-r--r--spec/lib/admin/metrics/measure/instance_statuses_measure_spec.rb39
6 files changed, 245 insertions, 0 deletions
diff --git a/spec/lib/admin/metrics/measure/instance_accounts_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_accounts_measure_spec.rb
new file mode 100644
index 00000000000..29a157491ed
--- /dev/null
+++ b/spec/lib/admin/metrics/measure/instance_accounts_measure_spec.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::Metrics::Measure::InstanceAccountsMeasure do
+ subject(:measure) { described_class.new(start_at, end_at, params) }
+
+ let(:domain) { 'example.com' }
+
+ let(:start_at) { 2.days.ago }
+ let(:end_at) { Time.now.utc }
+
+ let(:params) { ActionController::Parameters.new(domain: domain) }
+
+ before do
+ Fabricate(:account, domain: domain, created_at: 1.year.ago)
+ Fabricate(:account, domain: domain, created_at: 1.month.ago)
+ Fabricate(:account, domain: domain)
+
+ Fabricate(:account, domain: "foo.#{domain}", created_at: 1.year.ago)
+ Fabricate(:account, domain: "foo.#{domain}")
+ Fabricate(:account, domain: "bar.#{domain}")
+ end
+
+ describe 'total' do
+ context 'without include_subdomains' do
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 3
+ end
+ end
+
+ context 'with include_subdomains' do
+ let(:params) { ActionController::Parameters.new(domain: domain, include_subdomains: 'true') }
+
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 6
+ end
+ end
+ end
+end
diff --git a/spec/lib/admin/metrics/measure/instance_followers_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_followers_measure_spec.rb
new file mode 100644
index 00000000000..ebf789c1b36
--- /dev/null
+++ b/spec/lib/admin/metrics/measure/instance_followers_measure_spec.rb
@@ -0,0 +1,42 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::Metrics::Measure::InstanceFollowersMeasure do
+ subject(:measure) { described_class.new(start_at, end_at, params) }
+
+ let(:domain) { 'example.com' }
+
+ let(:start_at) { 2.days.ago }
+ let(:end_at) { Time.now.utc }
+
+ let(:params) { ActionController::Parameters.new(domain: domain) }
+
+ before do
+ local_account = Fabricate(:account)
+
+ Fabricate(:account, domain: domain).follow!(local_account)
+ Fabricate(:account, domain: domain).follow!(local_account)
+ Fabricate(:account, domain: domain)
+
+ Fabricate(:account, domain: "foo.#{domain}").follow!(local_account)
+ Fabricate(:account, domain: "foo.#{domain}").follow!(local_account)
+ Fabricate(:account, domain: "bar.#{domain}")
+ end
+
+ describe 'total' do
+ context 'without include_subdomains' do
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 2
+ end
+ end
+
+ context 'with include_subdomains' do
+ let(:params) { ActionController::Parameters.new(domain: domain, include_subdomains: 'true') }
+
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 4
+ end
+ end
+ end
+end
diff --git a/spec/lib/admin/metrics/measure/instance_follows_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_follows_measure_spec.rb
new file mode 100644
index 00000000000..335e3c7321a
--- /dev/null
+++ b/spec/lib/admin/metrics/measure/instance_follows_measure_spec.rb
@@ -0,0 +1,42 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::Metrics::Measure::InstanceFollowsMeasure do
+ subject(:measure) { described_class.new(start_at, end_at, params) }
+
+ let(:domain) { 'example.com' }
+
+ let(:start_at) { 2.days.ago }
+ let(:end_at) { Time.now.utc }
+
+ let(:params) { ActionController::Parameters.new(domain: domain) }
+
+ before do
+ local_account = Fabricate(:account)
+
+ local_account.follow!(Fabricate(:account, domain: domain))
+ local_account.follow!(Fabricate(:account, domain: domain))
+ Fabricate(:account, domain: domain)
+
+ local_account.follow!(Fabricate(:account, domain: "foo.#{domain}"))
+ local_account.follow!(Fabricate(:account, domain: "foo.#{domain}"))
+ Fabricate(:account, domain: "bar.#{domain}")
+ end
+
+ describe 'total' do
+ context 'without include_subdomains' do
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 2
+ end
+ end
+
+ context 'with include_subdomains' do
+ let(:params) { ActionController::Parameters.new(domain: domain, include_subdomains: 'true') }
+
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 4
+ end
+ end
+ end
+end
diff --git a/spec/lib/admin/metrics/measure/instance_media_attachments_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_media_attachments_measure_spec.rb
new file mode 100644
index 00000000000..711a2aff05c
--- /dev/null
+++ b/spec/lib/admin/metrics/measure/instance_media_attachments_measure_spec.rb
@@ -0,0 +1,43 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::Metrics::Measure::InstanceMediaAttachmentsMeasure do
+ subject(:measure) { described_class.new(start_at, end_at, params) }
+
+ let(:domain) { 'example.com' }
+
+ let(:start_at) { 2.days.ago }
+ let(:end_at) { Time.now.utc }
+
+ let(:params) { ActionController::Parameters.new(domain: domain) }
+
+ let(:remote_account) { Fabricate(:account, domain: domain) }
+ let(:remote_account_on_subdomain) { Fabricate(:account, domain: "foo.#{domain}") }
+
+ before do
+ remote_account.media_attachments.create!(file: attachment_fixture('attachment.jpg'))
+ remote_account_on_subdomain.media_attachments.create!(file: attachment_fixture('attachment.jpg'))
+ end
+
+ describe 'total' do
+ context 'without include_subdomains' do
+ it 'returns the expected number of accounts' do
+ expected_total = remote_account.media_attachments.sum(:file_file_size) + remote_account.media_attachments.sum(:thumbnail_file_size)
+ expect(measure.total).to eq expected_total
+ end
+ end
+
+ context 'with include_subdomains' do
+ let(:params) { ActionController::Parameters.new(domain: domain, include_subdomains: 'true') }
+
+ it 'returns the expected number of accounts' do
+ expected_total = [remote_account, remote_account_on_subdomain].sum do |account|
+ account.media_attachments.sum(:file_file_size) + account.media_attachments.sum(:thumbnail_file_size)
+ end
+
+ expect(measure.total).to eq expected_total
+ end
+ end
+ end
+end
diff --git a/spec/lib/admin/metrics/measure/instance_reports_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_reports_measure_spec.rb
new file mode 100644
index 00000000000..f0ffd39cfb7
--- /dev/null
+++ b/spec/lib/admin/metrics/measure/instance_reports_measure_spec.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::Metrics::Measure::InstanceReportsMeasure do
+ subject(:measure) { described_class.new(start_at, end_at, params) }
+
+ let(:domain) { 'example.com' }
+
+ let(:start_at) { 2.days.ago }
+ let(:end_at) { Time.now.utc }
+
+ let(:params) { ActionController::Parameters.new(domain: domain) }
+
+ before do
+ Fabricate(:report, target_account: Fabricate(:account, domain: domain))
+ Fabricate(:report, target_account: Fabricate(:account, domain: domain))
+
+ Fabricate(:report, target_account: Fabricate(:account, domain: "foo.#{domain}"))
+ Fabricate(:report, target_account: Fabricate(:account, domain: "foo.#{domain}"))
+ Fabricate(:report, target_account: Fabricate(:account, domain: "bar.#{domain}"))
+ end
+
+ describe 'total' do
+ context 'without include_subdomains' do
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 2
+ end
+ end
+
+ context 'with include_subdomains' do
+ let(:params) { ActionController::Parameters.new(domain: domain, include_subdomains: 'true') }
+
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 5
+ end
+ end
+ end
+end
diff --git a/spec/lib/admin/metrics/measure/instance_statuses_measure_spec.rb b/spec/lib/admin/metrics/measure/instance_statuses_measure_spec.rb
new file mode 100644
index 00000000000..c1425ecdb92
--- /dev/null
+++ b/spec/lib/admin/metrics/measure/instance_statuses_measure_spec.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::Metrics::Measure::InstanceStatusesMeasure do
+ subject(:measure) { described_class.new(start_at, end_at, params) }
+
+ let(:domain) { 'example.com' }
+
+ let(:start_at) { 2.days.ago }
+ let(:end_at) { Time.now.utc }
+
+ let(:params) { ActionController::Parameters.new(domain: domain) }
+
+ before do
+ Fabricate(:status, account: Fabricate(:account, domain: domain))
+ Fabricate(:status, account: Fabricate(:account, domain: domain))
+
+ Fabricate(:status, account: Fabricate(:account, domain: "foo.#{domain}"))
+ Fabricate(:status, account: Fabricate(:account, domain: "foo.#{domain}"))
+ Fabricate(:status, account: Fabricate(:account, domain: "bar.#{domain}"))
+ end
+
+ describe 'total' do
+ context 'without include_subdomains' do
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 2
+ end
+ end
+
+ context 'with include_subdomains' do
+ let(:params) { ActionController::Parameters.new(domain: domain, include_subdomains: 'true') }
+
+ it 'returns the expected number of accounts' do
+ expect(measure.total).to eq 5
+ end
+ end
+ end
+end