52 lines
1.6 KiB
Ruby
52 lines
1.6 KiB
Ruby
# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe ObjectManagerAttributeDateRemoveFuturePast, type: :db_migration do
|
|
context 'when Date ObjectManager::Attribute exists' do
|
|
|
|
it 'removes future and past data_option' do
|
|
subject = build(:object_manager_attribute_date)
|
|
|
|
# add data_options manually because the factory doesn't contain them anymore
|
|
subject.data_option = subject.data_option.merge(
|
|
future: false,
|
|
past: false,
|
|
)
|
|
|
|
# mock interfaces to save time
|
|
# otherwise we would have to reseed the database
|
|
allow(ObjectManager::Attribute).to receive(:where).and_return([subject])
|
|
allow(subject).to receive(:save!)
|
|
|
|
migrate
|
|
|
|
expect(subject.data_option).not_to include(:past, :future)
|
|
end
|
|
|
|
context 'when incomplete data_option is given' do
|
|
|
|
it 'adds missing :diff option' do
|
|
subject = build(:object_manager_attribute_date)
|
|
|
|
# add data_options manually because the factory doesn't contain them anymore
|
|
subject.data_option = subject.data_option.merge(
|
|
future: false,
|
|
past: false,
|
|
)
|
|
|
|
# remove diff option as for some attributes
|
|
# from older Zammad installations
|
|
subject.data_option.delete(:diff)
|
|
|
|
# mock interfaces to save time
|
|
# otherwise we would have to reseed the database
|
|
allow(ObjectManager::Attribute).to receive(:where).and_return([subject])
|
|
# expect(subject).to receive(:save!)
|
|
|
|
expect { migrate }.not_to raise_error
|
|
end
|
|
end
|
|
end
|
|
end
|