trabajo-afectivo/spec/db/migrate/object_manager_attribute_date_remove_future_past_spec.rb

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