123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
- require 'rails_helper'
- RSpec.describe ChangeTokenExpirationHandling, db_strategy: :reset, type: :db_migration do
- before do
- change_column :tokens, :expires_at, :date, null: true
- Token.reset_column_information
- end
- describe 'updating scheduler job' do
- let(:scheduler_job) { Scheduler.find_by(method: 'Token.cleanup') }
- before do
- scheduler_job.update! period: 30.days
- end
- it 'changes token cleanup period to 1 day' do
- expect { migrate }
- .to change { scheduler_job.reload.period }
- .to 1.day
- end
- end
- describe 'migrating expiration date column' do
- let(:token) { create(:token, expires_at:) }
- around do |example|
- tz = Setting.get('timezone_default')
- Setting.set('timezone_default', 'Asia/Tokyo')
- example.run
- Setting.set('timezone_default', tz)
- end
- context 'when token has expiration date' do
- let(:expires_at) { '2020-02-02'.to_date }
- it 'changes existing expiration dates to beginning-of-the-day' do
- expect { migrate }
- .to change { token.reload.expires_at }
- .to Time.zone.parse('2020-02-01 15:00')
- end
- end
- context 'when token has no expiration date' do
- let(:expires_at) { nil }
- it 'keeps token without expiration date' do
- expect { migrate }
- .not_to change { token.reload.expires_at }
- end
- end
- end
- end
|