attribute_spec.rb 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. require 'rails_helper'
  2. RSpec.describe ObjectManager::Attribute, type: :model do
  3. describe 'callbacks' do
  4. context 'for setting default values on local data options' do
  5. let(:subject) { described_class.new }
  6. context ':null' do
  7. it 'sets nil values to true' do
  8. expect { subject.validate }
  9. .to change { subject.data_option[:null] }.to(true)
  10. end
  11. it 'does not overwrite false values' do
  12. subject.data_option[:null] = false
  13. expect { subject.validate }
  14. .not_to change { subject.data_option[:null] }
  15. end
  16. end
  17. context ':maxlength' do
  18. context 'for data_type: select / tree_select / checkbox' do
  19. let(:subject) { described_class.new(data_type: 'select') }
  20. it 'sets nil values to 255' do
  21. expect { subject.validate }
  22. .to change { subject.data_option[:maxlength] }.to(255)
  23. end
  24. end
  25. end
  26. context ':nulloption' do
  27. context 'for data_type: select / tree_select / checkbox' do
  28. let(:subject) { described_class.new(data_type: 'select') }
  29. it 'sets nil values to true' do
  30. expect { subject.validate }
  31. .to change { subject.data_option[:nulloption] }.to(true)
  32. end
  33. it 'does not overwrite false values' do
  34. subject.data_option[:nulloption] = false
  35. expect { subject.validate }
  36. .not_to change { subject.data_option[:nulloption] }
  37. end
  38. end
  39. end
  40. end
  41. end
  42. end