diff --git a/app/models/account_migration.rb b/app/models/account_migration.rb index c2c6355a18..ffa74cd21f 100644 --- a/app/models/account_migration.rb +++ b/app/models/account_migration.rb @@ -60,6 +60,10 @@ class AccountMigration < ApplicationRecord created_at + COOLDOWN_PERIOD end + def remaining_cooldown_days + ((cooldown_at - Time.current) / 1.day).ceil + end + private def set_target_account diff --git a/app/views/settings/migrations/show.html.haml b/app/views/settings/migrations/show.html.haml index 296075a28e..8c3bae704f 100644 --- a/app/views/settings/migrations/show.html.haml +++ b/app/views/settings/migrations/show.html.haml @@ -24,7 +24,7 @@ = simple_form_for @migration, url: settings_migration_path do |f| - if on_cooldown? %p.hint - %span.warning-hint= t('migrations.on_cooldown', count: ((@cooldown.cooldown_at - Time.now.utc) / 1.day.seconds).ceil) + %span.warning-hint= t('migrations.on_cooldown', count: @cooldown.remaining_cooldown_days) - else %p.hint= t('migrations.warning.before') diff --git a/spec/models/account_migration_spec.rb b/spec/models/account_migration_spec.rb index 1bb238f7ef..55d299799c 100644 --- a/spec/models/account_migration_spec.rb +++ b/spec/models/account_migration_spec.rb @@ -51,4 +51,24 @@ RSpec.describe AccountMigration do it { is_expected.to_not allow_value(target_acct).for(:acct) } end end + + describe '#remaining_cooldown_days' do + subject { account_migration.remaining_cooldown_days } + + before { stub_const('AccountMigration::COOLDOWN_PERIOD', 30.days) } + + let(:account_migration) { Fabricate :account_migration, created_at: } + + context 'with a record still in cooldown' do + let(:created_at) { 15.days.ago } + + it { is_expected.to eq(15) } + end + + context 'with a record out of cooldown' do + let(:created_at) { 150.days.ago } + + it { is_expected.to be_negative } + end + end end