From 41a3c661aa4962c43a9757546c4f152990262605 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergei=20Ts=C3=B5ganov?= Date: Wed, 13 Apr 2022 15:59:01 +0300 Subject: [PATCH] Deleted disclosable concern from contact --- app/models/concerns/contact/disclosable.rb | 22 ------------ app/models/contact.rb | 1 - test/models/contact/disclosable_test.rb | 39 ---------------------- 3 files changed, 62 deletions(-) delete mode 100644 app/models/concerns/contact/disclosable.rb delete mode 100644 test/models/contact/disclosable_test.rb diff --git a/app/models/concerns/contact/disclosable.rb b/app/models/concerns/contact/disclosable.rb deleted file mode 100644 index a61b240b1..000000000 --- a/app/models/concerns/contact/disclosable.rb +++ /dev/null @@ -1,22 +0,0 @@ -module Contact::Disclosable - extend ActiveSupport::Concern - - class_methods do - attr_accessor :disclosable_attributes - end - - included do - self.disclosable_attributes = %w[name email] - validate :validate_disclosed_attributes - end - - private - - def validate_disclosed_attributes - return if disclosed_attributes.empty? - - has_undisclosable_attributes = (disclosed_attributes - self.class.disclosable_attributes) - .any? - errors.add(:disclosed_attributes, :invalid) if has_undisclosable_attributes - end -end diff --git a/app/models/contact.rb b/app/models/contact.rb index 676b0da87..fc8f9a10e 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -7,7 +7,6 @@ class Contact < ApplicationRecord include UserEvents include Contact::Transferable include Contact::Identical - include Contact::Disclosable include Contact::Archivable include EmailVerifable diff --git a/test/models/contact/disclosable_test.rb b/test/models/contact/disclosable_test.rb deleted file mode 100644 index 02adfbb08..000000000 --- a/test/models/contact/disclosable_test.rb +++ /dev/null @@ -1,39 +0,0 @@ -require 'test_helper' - -class ContactDisclosableTest < ActiveSupport::TestCase - setup do - @contact = contacts(:john) - @original_disclosable_attributes = Contact.disclosable_attributes - end - - teardown do - Contact.disclosable_attributes = @original_disclosable_attributes - end - - def test_no_disclosed_attributes_by_default - assert_empty Contact.new.disclosed_attributes - end - - def test_disclosable_attributes - assert_equal %w[name email], Contact.disclosable_attributes - end - - def test_valid_without_disclosed_attributes - @contact.disclosed_attributes = [] - assert @contact.valid? - end - - def test_invalid_when_attribute_is_not_disclosable - Contact.disclosable_attributes = %w[some disclosable] - @contact.disclosed_attributes = %w[some undisclosable] - - assert @contact.invalid? - assert_includes @contact.errors[:disclosed_attributes], 'contain unsupported attribute(s)' - end - - def test_valid_when_attribute_is_disclosable - Contact.disclosable_attributes = %w[some disclosable] - @contact.disclosed_attributes = %w[disclosable] - assert @contact.valid? - end -end