mirror of
https://github.com/astuto/astuto.git
synced 2025-12-15 03:07:52 +01:00
Random color assigned to new post statuses
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
class PostStatus < ApplicationRecord
|
||||
after_initialize :set_order_to_last
|
||||
after_initialize :set_random_color, :set_order_to_last
|
||||
|
||||
validates :name, presence: true, uniqueness: true
|
||||
validates :color, format: { with: /\A#(?:[0-9a-fA-F]{3}){1,2}\z/ }
|
||||
@@ -12,6 +12,13 @@ class PostStatus < ApplicationRecord
|
||||
end
|
||||
end
|
||||
|
||||
def set_random_color
|
||||
return unless new_record?
|
||||
return unless color.nil?
|
||||
|
||||
self.color = '#' + Random.bytes(3).unpack1('H*')
|
||||
end
|
||||
|
||||
def set_order_to_last
|
||||
return unless new_record?
|
||||
return unless order.nil?
|
||||
|
||||
@@ -62,6 +62,12 @@ RSpec.describe PostStatus, type: :model do
|
||||
expect(roadmap.second).to eq(post_status2)
|
||||
end
|
||||
|
||||
it 'automatically sets a random color if not specified' do
|
||||
post_status1 = PostStatus.new
|
||||
|
||||
expect(post_status1.color).to match(/\A#(?:[0-9a-fA-F]{3}){1,2}\z/)
|
||||
end
|
||||
|
||||
it 'automatically sets order to last order if not specified' do
|
||||
order = 10
|
||||
post_status1 = FactoryBot.create(:post_status, order: order)
|
||||
|
||||
Reference in New Issue
Block a user